Messages in this thread | | | Date | Mon, 17 Nov 2008 09:08:10 +0000 | From | "Jan Beulich" <> | Subject | arch_flush_lazy_mmu_mode() in arch/x86/mm/highmem_32.c |
| |
Commit 49f19710512c825aaea73b9207b3a848027cda1d hints at the current solution not being the final one, yet the advertised (for 2.6.22) change apparently never happened. However, it seems to me that flushing a potentially huge (it terms of time to completion) batch asynchronously is no really good idea. Instead, I'd think that adding to the batch should be prevented in asynchronous contexts altogether, or things should properly nest. As a positive side effect, disabling interrupts in the batch handling - in particular around the submission of the batch - could also be avoided, reducing interrupt latency (perhaps significantly in some case).
Likewise I would think that the flush out of vmalloc_sync_one() isn't appropriate, and it should rather be avoided for the set_pmd() there to get into the batching code altogether.
(Background to this: After adding lazy mmu mode support in our forward ported tree, we've actually been hit by these calls out of kmap_...(), as originally I didn't pay much attention to these and didn't care to synchronize batch addition and flushing with asynchronous operations.)
Jan
| |