[lkml]   [2008]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: RFC: one-bit mutexes (was: Re: [PATCH 2/3] Memory management livelock)
    On Tuesday 21 October 2008 07:14, Mikulas Patocka wrote:
    > > > If you are concerned about the size of an inode, I can convert other
    > > > mutexes to bit mutexes: i_mutex and inotify_mutex.
    > >
    > > I wouldn't worry for now. mutexes can be unlocked much faster than bit
    > > mutexes, especially in the fastpath. And due to slab, it would be
    > > unlikely to actually save any space.
    > Maybe inotify_mutex. You are right that i_mutex is so heavily contended
    > that slowing it down to save few words wouldn't be good. Do you know about
    > any inotify-intensive workload?

    Don't really know, no. I think most desktop environments use it to
    some extent, but no idea how much.

    > > > I could also create
    > > > bit_spinlock (one-bit spinlock that uses test_and_set_bit) and save
    > > > space for address_space->tree_lock, address_space->i_mmap_lock,
    > > > address_space->private_lock, inode->i_lock.
    > >
    > > We have that already. It is much much faster to unlock spinlocks than
    > > bit spinlocks in general (if you own the word exclusively, then it's
    > > not, but then you would be less likely to save space), and we can also
    > > do proper FIFO ticket locks with a larger word.
    > BTW. why do spinlocks on x86(64) have 32 bits and not 8 bits or 16 bits?
    > Are atomic 32-bit instuctions faster?

    In the case of <= 256 CPUs, they could be an unsigned short I think.
    Probably it has never been found to be a huge win because they are
    often beside other ints or longs. I think I actually booted up the
    kernel with 16-bit spinlocks when doing the FIFO locks, but never
    sent a patch for it... Don't let me stop you from trying though.

    > Can x86(86) system have 256 CPUs?

    Well, none that I know of which actually exist. SGI is hoping to have
    4096 CPU x86 systems as far as I can tell.

     \ /
      Last update: 2008-10-21 03:53    [W:0.023 / U:93.568 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site