[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.4-testing] Adjust non-default sized console ring allocation
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1251968743 -3600 # Node ID c0263626c810e3bdb496ed0473fbef5d57073ec0 # Parent 19e1a1c5ac1ab82ac2f4c41eff364bbdaeb45c45 Adjust non-default sized console ring allocation Using xmalloc() for objects that are guaranteed to be at least as large as a page is wasteful, as it will always result in more (here: double the amount) being allocated. The other adjustments are more cosmetic: - Updating conring and conring_size can be done so NMI/MCE generated messages don't use the new (larger) size with the old (smaller) buffer. - The size printed can be in KiB (for the value to be easier to grasp) since it is always a multiple of the default of 16KiB. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> xen-unstable changeset: 20130:bff9f3e5ad94 xen-unstable date: Mon Aug 31 09:51:05 2009 +0100 --- xen/drivers/char/console.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff -r 19e1a1c5ac1a -r c0263626c810 xen/drivers/char/console.c --- a/xen/drivers/char/console.c Thu Sep 03 10:05:03 2009 +0100 +++ b/xen/drivers/char/console.c Thu Sep 03 10:05:43 2009 +0100 @@ -608,7 +608,7 @@ void __init console_init_postirq(void) if ( opt_conring_size < conring_size ) return; - ring = xmalloc_bytes(opt_conring_size); + ring = alloc_xenheap_pages(get_order_from_bytes(opt_conring_size), 0); if ( ring == NULL ) { printk("Unable to allocate console ring of %u bytes.\n", @@ -619,11 +619,12 @@ void __init console_init_postirq(void) spin_lock_irq(&console_lock); for ( i = conringc ; i != conringp; i++ ) ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)]; + conring = ring; + wmb(); /* Allow users of console_force_unlock() to see larger buffer. */ conring_size = opt_conring_size; - conring = ring; spin_unlock_irq(&console_lock); - printk("Allocated console ring of %u bytes.\n", opt_conring_size); + printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10); } void __init console_endboot(void) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |