Re: Thread safe circular buffer.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/8/07, Tzahi Fadida <Tzahi.ML2@xxxxxxxxx> wrote:
On Thursday 08 March 2007 10:30, Anupam Kapoor wrote:
> On 3/8/07, Tzahi Fadida <Tzahi.ML2@xxxxxxxxx> wrote:
> > On Wednesday 07 March 2007 20:45, Stuart Macdonald wrote:
> > > If you are on IA32 architecture then memory reads and writes are atomic
> > > provided that they don't cross a cache line.
> >
> > And how do i make sure of that? declare the variable head volatile?
>
> don't use volatile in the kernel. straight from horse's mouth :

I don't understand, LDD3 uses volatile in drivers. Now they say i can't.
What is the alternative?

>
> http://thread.gmane.org/gmane.linux.kernel/423487/focus=424677
>
> anupam

--
Regards,
Tzahi.

Interesting, that thread is recommending "optimization barriers".  I
wasn't familiar with those.

syntax example:
for (int i=0; i<10; i++)
{
	a[i] = *ina;
	barrier();
	b[i] = *inb;
}

And the description is:
It's a full optimization barrier; the compiler assumes all
register and memory content has changed from before the barrier(), and
it will start "fresh".

Greg
--
Greg Freemyer
The Norcross Group
Forensics for the 21st Century

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux