lkml.org 
[lkml]   [2009]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 4/4] ipc: sem optimise simple operations
    On Wed, Aug 12, 2009 at 12:07:11AM +0400, Cyrill Gorcunov wrote:
    > [npiggin@suse.de - Tue, Aug 11, 2009 at 09:09:06PM +1000]
    > ...
    > | +static void update_queue_simple(struct sem_array *sma, ushort semnum)
    > | +{
    > | + if (unlikely(sma->complex_count)) {
    > | + update_queue(sma);
    > | + } else {
    > | + struct sem *sem;
    > | +
    > | + sem = &sma->sem_base[semnum];
    > | + if (sem->semval > 0)
    > | + update_negv_queue(sma, sem);
    > | + if (sem->semval == 0)
    > | + update_zero_queue(sma, sem);
    > | + }
    > | +}
    > | +
    > ...
    >
    > Hi Nick,
    >
    > mostly probably miss something but can't we trgigger BUG_ON at updating
    > zero queue if semaphore was created with undo list and via new operation
    > reached -ERANGE on undo value?
    >
    > Again, I could be missing something or plain wrong. Just a thought.

    Hi Cyrill,

    Thanks for looking... Hmm, you mean BUG_ON(error) due to try_atomic_semop
    returning -ERANGE? I think it should not be possible because it should
    prevent any operation from bringing the undo list to -ERANGE so then any
    operation which does not modify the sem value should not go out of range
    I think.

    (I think it would be a bug if we ever return -ERANGE for a wait-for-zero
    operation).

    Thanks,
    Nick


    \
     
     \ /
      Last update: 2009-08-12 06:51    [W:0.023 / U:1.164 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site