[lkml]   [2010]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [x86] Unify semaphore_32.S and rwlock_64.S
    On 01/20/2010 03:57 PM, Linus Torvalds wrote:
    > On Wed, 20 Jan 2010, Christoph Lameter wrote:
    >> Well 2^32 readers is a bit large anyways. If we are satisifed with 2^30
    >> (only a billion) then it works with the same code.
    > Yes, that's what I would suggest. Make the constants be (for the 64-bit
    > case)
    > #define RWSEM_UNLOCKED_VALUE 0x00000000
    > #define RWSEM_ACTIVE_BIAS 0x00000001
    > #define RWSEM_ACTIVE_MASK 0x3fffffff
    > and now all the constants should be expressable as 32-bit (signed) values.
    > Side note: it might be interesting to keep the rwsem_count_t be a config
    > option on x86-64 too, so this would _not_ necessarily always be a "x86-32"
    > vs "x86-64" issue. A raw spinlock is 32-bit, which together with a 32-bit
    > rwsem_count would make the resem's smaller. Does it matter? Maybe not. But
    > we might at some point decide that it's worth limiting number of threads
    > to 32k in certain configurations, so I'd keep my options open.
    > So make the size of the counter be a CONFIG_RWSEM_LARGE thing, rather than
    > a 32-bit vs 64-bit thing. And just start out with making x86-64 select it,
    > but leaving the option open to use the 32-bit version on x86-64 too?

    I'm somewhat unhappy about that notion, mostly because it means Yet
    Another Thing To Verify[TM]. I would like to look at the relative code
    sizes of 2^31 and 2^30, however, if all it means is that *one*
    instruction in *one* asm has to be different, I'd rather leave it at 2^31.


     \ /
      Last update: 2010-01-21 01:05    [W:0.021 / U:38.824 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site