lkml.org 
[lkml]   [2006]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] mm: Implement Swap Prefetching v22
Date
On Friday 10 February 2006 05:04, Nikita Danilov wrote:
> Nick Piggin writes:
>
> [...]
>
> > > +/*
> > > + * We check to see no part of the vm is busy. If it is this will
> > > interrupt + * trickle_swap and wait another PREFETCH_DELAY.
> > > Purposefully racy. + */
> > > +inline void delay_swap_prefetch(void)
> > > +{
> > > + __set_bit(0, &swapped.busy);
> > > +}
> > > +
> >
> > Test this first so you don't bounce the cacheline around in page
> > reclaim too much.
>
> Shouldn't we have special macros/inlines for this? Like, e.g.,
>
> static inline void __set_bit_weak(int nr, volatile unsigned long * addr)
> {
> if (!__test_bit(nr, addr))
> __set_bit(nr, addr);
> }
>
> ? These test-then-set sequences start to proliferate throughout the code.

Maybe.

There isn't actually a non-atomic __test_bit anyway, only a test_bit. The
non-atomic __test_and_set_bit already exists, but that sets the bit
regardless of what the bit was as far as I can tell.

Cheers,
Con
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-02-10 01:11    [W:0.114 / U:0.556 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site