[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCHv1 3/4] spinlock: shrink struct lock_debug

On 18/12/15 16:58, Jan Beulich wrote:
On 18.12.15 at 15:09, <david.vrabel@xxxxxxxxxx> wrote:
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -16,7 +16,7 @@ static atomic_t spin_debug __read_mostly = ATOMIC_INIT(0);
static void check_lock(struct lock_debug *debug)
-    int irq_safe = !local_irq_is_enabled();
+    s16 irq_safe = !local_irq_is_enabled();
if ( unlikely(atomic_read(&spin_debug) <= 0) )
I can't figure out why this odd looking change is needed.


This patch shrinks struct lock_debug's irq_safe member. Since you end up with many instances of this embedded in other structures such as struct domain, this become a useful saving in memory. At one point, I had an issue with struct domain exceeding 4k, which caused trouble. Given the change to struct_lock debug, this local variable irq_safe, is compared with it, and used in cmpxchg with it it, and therefore should match type.

- Jenny

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.