On Monday 13 August 2012 17:07:41 you wrote: > > * Note: the i386 does not currently require barriers, but we must > > * provide the flags to MI code. > > > > This is not correct for virtio. We need a memory barrier. > > sure, copy it from amd64.
OK. A slight complication: sfence/mfence/lfence do not exist on all i386 CPUs. sfence was introduced with SSE, [lm]fence with SSE2. This is not really a problem with the virtio driver because the virtualization extensions were introduced much later. But it may be a problem with the rest of the i386 code. How do you normally handle this? Check during boot and set a pointer to the function to be used and call that function pointer from bus_space_barrier()? -- genua Gesellschaft fuer Netzwerk- und Unix-Administration mbH Domagkstrasse 7, 85551 Kirchheim bei Muenchen tel +49 89 991950-0, fax -999, www.genua.de Geschaeftsfuehrer: Dr. Magnus Harlander, Dr. Michaela Harlander, Bernhard Schneck. Amtsgericht Muenchen HRB 98238
