Re: [PATCH 1/2] x86/mm: maintain a percpu "in get_user_pages_fast"flag

From: Avi Kivity
Date: Sat Mar 28 2009 - 05:54:55 EST


Jeremy Fitzhardinge wrote:
@@ -255,6 +260,10 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
* address down to the the page and take a ref on it.
*/
local_irq_disable();
+
+ cpu = smp_processor_id();
+ cpumask_set_cpu(cpu, in_gup_cpumask);
+

This will bounce a cacheline, every time. Please wrap in CONFIG_XEN and skip at runtime if Xen is not enabled.

Every time? Only when running successive gup_fasts on different cpus, and only twice per gup_fast. (What's the typical page count? I see that kvm and lguest are page-at-a-time users, but presumably direct IO has larger batches.)

Databases will often issue I/Os of 1 or 2 pages. But not regressing kvm should be sufficient motivation.


--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
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/