lkml.org 
[lkml]   [2009]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/9] swap_info: change to array of pointers
On Fri, 16 Oct 2009 00:04:14 +0100 (BST)
Hugh Dickins <hugh.dickins@tiscali.co.uk> wrote:

> On Thu, 15 Oct 2009, Hugh Dickins wrote:
> > On Thu, 15 Oct 2009, KAMEZAWA Hiroyuki wrote:
> > > On Thu, 15 Oct 2009 01:48:01 +0100 (BST)
> > > Hugh Dickins <hugh.dickins@tiscali.co.uk> wrote:
> > > > @@ -1675,11 +1674,13 @@ static void *swap_start(struct seq_file
> > > > if (!l)
> > > > return SEQ_START_TOKEN;
> > > >
> > > > - for (i = 0; i < nr_swapfiles; i++, ptr++) {
> > > > - if (!(ptr->flags & SWP_USED) || !ptr->swap_map)
> > > > + for (type = 0; type < nr_swapfiles; type++) {
> > > > + smp_rmb(); /* read nr_swapfiles before swap_info[type] */
> > > > + si = swap_info[type];
> > >
> > > if (!si) ?
>
> Re-reading, I see that I missed your interjection there.
>
> Precisely because we read swap_info[type] after reading nr_swapfiles,
> with smp_rmb() here to enforce that, and smp_wmb() where they're set
> in swapon, there is no way for si to be seen as NULL here. Is there?
>
Ah, sorry this is my mistake. I don't understand "nr_swapfiles never decreases
and swap_info[] will be never invalidated."

> Or are you asking for a further comment here on why that's so?
No.

> I think I'd rather just switch to taking swap_lock in swap_start()
> and swap_next(), than be adding comments on why we don't need it.
>

Hmm, maybe.

Thanks,
-Kame

> Hugh
>



\
 
 \ /
  Last update: 2009-10-16 02:05    [W:0.081 / U:0.464 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site