Re: [PATCH] VFS: make file->f_pos access atomic on 32bit arch

From: Nick Piggin
Date: Tue Sep 16 2008 - 10:12:21 EST


On Tuesday 16 September 2008 23:57, Michael Trimarchi wrote:
> Hi,
>
>
>
> ----- Messaggio originale -----
>
> > Da: Nick Piggin <nickpiggin@xxxxxxxxxxxx>
> > A: Michael Trimarchi <trimarchimichael@xxxxxxxx>
> > Cc: Hisashi Hifumi <hifumi.hisashi@xxxxxxxxxxxxx>;
> > akpm@xxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > linux-fsdevel@xxxxxxxxxxxxxxx Inviato: Martedì 16 settembre 2008,
> > 14:54:21
> > Oggetto: Re: [PATCH] VFS: make file->f_pos access atomic on 32bit arch
> >
> > On Tuesday 16 September 2008 21:11, Michael Trimarchi wrote:
> > > Hi,
> > >
> > > > + if (offset != file_pos_read(file))
> > > > + file_pos_write(file, offset);
> > > > retval = offset;
> > > > }
> > >
> > > Is not more efficient here a compare xchg operation?
> >
> > The compiler should do it if it was.
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel"
> > in the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>
> i was thinking about introducing a file_pos_update() not implemented using
> file_pos_read()/file_pos_write() and taking the seq_lock or
> disabling preemption only one time

AFAIK, the only way to do an atomic 64 bit store on 32-bit x86 is
"cmpxchg8b" (with lock prefix on SMP). That would be far slower
I'm sure.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/