On Thu, Feb 28, 2002 at 04:30:12PM -0800, Thomas Bushnell, BSG wrote: > Marcus Brinkmann <[EMAIL PROTECTED]> writes: > > > Design flaw: Changes don't propagate immediately to other threads in > > the same task running on another processor. This applies to enable as > > well as disable operations! Espen Skoglund pointed out that we only > > need to propagate disable operations, enable operations could be picked > > up in the fault handler (for extra performance). > > Why is this so? Why not just suspend the threads around the operation > and then resume them (forcing them to reload processor state)?
Last time it was discussed, we said that we should probably use the same mechanism as is used for page maps, that is inter-CPU interrupts. The only reason I did not do it is that I have only a limited understanding of the CPU synchronization code, and I would not like to touch it. I also don't think that I have the time to learn enough about SMP right now to get this right. I haven't considered alternatives, like suspending threads. I am not sure if that would work. I guess that if you do it within the I/O bitmap lock, it could be safe, although it seems to me that it is potentially much slower than the other approach (not that it would matter much). If that approach actually works, we might put it in for the SMP case until we have a better solution? Thanks, Marcus _______________________________________________ Bug-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-hurd