search for: __ticketpair_t

Displaying 20 results from an estimated 67 matches for "__ticketpair_t".

2010 Nov 03
25
[PATCH 00/20] x86: ticket lock rewrite and paravirtualization
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This series does two major things: 1. It converts the bulk of the implementation to C, and makes the "small ticket" and "large ticket" code common. Only the actual size-dependent asm instructions are specific to the ticket size. The resulting generated asm is very similar to the current
2010 Nov 03
25
[PATCH 00/20] x86: ticket lock rewrite and paravirtualization
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This series does two major things: 1. It converts the bulk of the implementation to C, and makes the "small ticket" and "large ticket" code common. Only the actual size-dependent asm instructions are specific to the ticket size. The resulting generated asm is very similar to the current
2010 Nov 03
25
[PATCH 00/20] x86: ticket lock rewrite and paravirtualization
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This series does two major things: 1. It converts the bulk of the implementation to C, and makes the "small ticket" and "large ticket" code common. Only the actual size-dependent asm instructions are specific to the ticket size. The resulting generated asm is very similar to the current
2014 May 28
7
[RFC] Implement Batched (group) ticket lock
...T_LOCK_INC 2 #define TICKET_SLOWPATH_FLAG ((__ticket_t)1) #else -#define __TICKET_LOCK_INC 1 #define TICKET_SLOWPATH_FLAG ((__ticket_t)0) #endif -#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_INC)) +#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_TAIL_INC)) typedef u8 __ticket_t; typedef u16 __ticketpair_t; #else @@ -19,7 +20,12 @@ typedef u16 __ticket_t; typedef u32 __ticketpair_t; #endif -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) +#define TICKET_LOCK_TAIL_INC ((__ticket_t)__TICKET_LOCK_TAIL_INC) + +#define TICKET_LOCK_HEAD_INC ((__ticket_t)1) +#define TICKET_BATCH 0x4 /* 4 wai...
2014 May 28
7
[RFC] Implement Batched (group) ticket lock
...T_LOCK_INC 2 #define TICKET_SLOWPATH_FLAG ((__ticket_t)1) #else -#define __TICKET_LOCK_INC 1 #define TICKET_SLOWPATH_FLAG ((__ticket_t)0) #endif -#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_INC)) +#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_TAIL_INC)) typedef u8 __ticket_t; typedef u16 __ticketpair_t; #else @@ -19,7 +20,12 @@ typedef u16 __ticket_t; typedef u32 __ticketpair_t; #endif -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) +#define TICKET_LOCK_TAIL_INC ((__ticket_t)__TICKET_LOCK_TAIL_INC) + +#define TICKET_LOCK_HEAD_INC ((__ticket_t)1) +#define TICKET_BATCH 0x4 /* 4 wai...
2014 May 29
0
[RFC] Implement Batched (group) ticket lock
...icket_t)1) > #else > -#define __TICKET_LOCK_INC 1 > #define TICKET_SLOWPATH_FLAG ((__ticket_t)0) > #endif > > -#if (CONFIG_NR_CPUS< (256 / __TICKET_LOCK_INC)) > +#if (CONFIG_NR_CPUS< (256 / __TICKET_LOCK_TAIL_INC)) > typedef u8 __ticket_t; > typedef u16 __ticketpair_t; > #else > @@ -19,7 +20,12 @@ typedef u16 __ticket_t; > typedef u32 __ticketpair_t; > #endif > > -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) > +#define TICKET_LOCK_TAIL_INC ((__ticket_t)__TICKET_LOCK_TAIL_INC) > + > +#define TICKET_LOCK_HEAD_INC ((__tic...
2014 May 28
0
[RFC] Implement Batched (group) ticket lock
...th 128 < CONFIG_NR_CPUS <= 256 will likely have their spinlocks padded out to 32 or 64 bits anyway in most data structures. > -#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_INC)) > +#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_TAIL_INC)) > typedef u8 __ticket_t; > typedef u16 __ticketpair_t; > #else > @@ -19,7 +20,12 @@ typedef u16 __ticket_t; > typedef u32 __ticketpair_t; > #endif > > -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) > +#define TICKET_LOCK_TAIL_INC ((__ticket_t)__TICKET_LOCK_TAIL_INC) > + > +#define TICKET_LOCK_HEAD_INC ((__tick...
2014 Feb 26
0
[PATCH v5 2/8] qspinlock, x86: Enable x86-64 to use queue spinlock
...inline void arch_spin_unlock_wait(arch_spinlock_t *lock) { diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h index 4f1bea1..7960268 100644 --- a/arch/x86/include/asm/spinlock_types.h +++ b/arch/x86/include/asm/spinlock_types.h @@ -23,6 +23,9 @@ typedef u32 __ticketpair_t; #define TICKET_SHIFT (sizeof(__ticket_t) * 8) +#ifdef CONFIG_QUEUE_SPINLOCK +#include <asm-generic/qspinlock_types.h> +#else typedef struct arch_spinlock { union { __ticketpair_t head_tail; @@ -33,6 +36,7 @@ typedef struct arch_spinlock { } arch_spinlock_t; #define __ARCH_SPIN...
2014 Feb 27
0
[PATCH v5 2/8] qspinlock, x86: Enable x86-64 to use queue spinlock
...inline void arch_spin_unlock_wait(arch_spinlock_t *lock) { diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h index 4f1bea1..7960268 100644 --- a/arch/x86/include/asm/spinlock_types.h +++ b/arch/x86/include/asm/spinlock_types.h @@ -23,6 +23,9 @@ typedef u32 __ticketpair_t; #define TICKET_SHIFT (sizeof(__ticket_t) * 8) +#ifdef CONFIG_QUEUE_SPINLOCK +#include <asm-generic/qspinlock_types.h> +#else typedef struct arch_spinlock { union { __ticketpair_t head_tail; @@ -33,6 +36,7 @@ typedef struct arch_spinlock { } arch_spinlock_t; #define __ARCH_SPIN...
2014 Mar 19
0
[PATCH v7 02/11] qspinlock, x86: Enable x86-64 to use queue spinlock
...inline void arch_spin_unlock_wait(arch_spinlock_t *lock) { diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h index 4f1bea1..7960268 100644 --- a/arch/x86/include/asm/spinlock_types.h +++ b/arch/x86/include/asm/spinlock_types.h @@ -23,6 +23,9 @@ typedef u32 __ticketpair_t; #define TICKET_SHIFT (sizeof(__ticket_t) * 8) +#ifdef CONFIG_QUEUE_SPINLOCK +#include <asm-generic/qspinlock_types.h> +#else typedef struct arch_spinlock { union { __ticketpair_t head_tail; @@ -33,6 +36,7 @@ typedef struct arch_spinlock { } arch_spinlock_t; #define __ARCH_SPIN...
2014 Mar 19
1
[PATCH v7 02/11] qspinlock, x86: Enable x86-64 to use queue spinlock
...wait(arch_spinlock_t *lock) > { > diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h > index 4f1bea1..7960268 100644 > --- a/arch/x86/include/asm/spinlock_types.h > +++ b/arch/x86/include/asm/spinlock_types.h > @@ -23,6 +23,9 @@ typedef u32 __ticketpair_t; > > #define TICKET_SHIFT (sizeof(__ticket_t) * 8) > > +#ifdef CONFIG_QUEUE_SPINLOCK > +#include <asm-generic/qspinlock_types.h> > +#else > typedef struct arch_spinlock { > union { > __ticketpair_t head_tail; > @@ -33,6 +36,7 @@ typedef struct arch_spi...
2014 Mar 19
1
[PATCH v7 02/11] qspinlock, x86: Enable x86-64 to use queue spinlock
...wait(arch_spinlock_t *lock) > { > diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h > index 4f1bea1..7960268 100644 > --- a/arch/x86/include/asm/spinlock_types.h > +++ b/arch/x86/include/asm/spinlock_types.h > @@ -23,6 +23,9 @@ typedef u32 __ticketpair_t; > > #define TICKET_SHIFT (sizeof(__ticket_t) * 8) > > +#ifdef CONFIG_QUEUE_SPINLOCK > +#include <asm-generic/qspinlock_types.h> > +#else > typedef struct arch_spinlock { > union { > __ticketpair_t head_tail; > @@ -33,6 +36,7 @@ typedef struct arch_spi...
2014 Jun 28
2
[RFC PATCH v2] Implement Batched (group) ticket lock
...ine TICKET_SLOWPATH_FLAG ((__ticket_t)0) +#define TICKET_LOCK_INC_SHIFT 0 +#define __TICKET_LOCK_TAIL_INC (1<<TICKET_LOCK_INC_SHIFT) #endif -#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_INC)) +#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_TAIL_INC)) typedef u8 __ticket_t; typedef u16 __ticketpair_t; #else @@ -19,7 +20,40 @@ typedef u16 __ticket_t; typedef u32 __ticketpair_t; #endif -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) +#ifdef CONFIG_PARAVIRT_SPINLOCKS +/* + * Batched ticketlock: 2n bits in lock is divided as follows: + * -----------------------------------------------...
2014 Jun 28
2
[RFC PATCH v2] Implement Batched (group) ticket lock
...ine TICKET_SLOWPATH_FLAG ((__ticket_t)0) +#define TICKET_LOCK_INC_SHIFT 0 +#define __TICKET_LOCK_TAIL_INC (1<<TICKET_LOCK_INC_SHIFT) #endif -#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_INC)) +#if (CONFIG_NR_CPUS < (256 / __TICKET_LOCK_TAIL_INC)) typedef u8 __ticket_t; typedef u16 __ticketpair_t; #else @@ -19,7 +20,40 @@ typedef u16 __ticket_t; typedef u32 __ticketpair_t; #endif -#define TICKET_LOCK_INC ((__ticket_t)__TICKET_LOCK_INC) +#ifdef CONFIG_PARAVIRT_SPINLOCKS +/* + * Batched ticketlock: 2n bits in lock is divided as follows: + * -----------------------------------------------...
2010 Nov 16
23
[PATCH 00/14] PV ticket locks without expanding spinlock
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This is a revised version of the pvticket lock series. The early part of the series is mostly unchanged: it converts the bulk of the ticket lock code into C and makes the "small" and "large" ticket code common. The only changes are the incorporation of various review comments. The latter part of
2010 Nov 16
23
[PATCH 00/14] PV ticket locks without expanding spinlock
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This is a revised version of the pvticket lock series. The early part of the series is mostly unchanged: it converts the bulk of the ticket lock code into C and makes the "small" and "large" ticket code common. The only changes are the incorporation of various review comments. The latter part of
2010 Nov 16
23
[PATCH 00/14] PV ticket locks without expanding spinlock
From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com> Hi all, This is a revised version of the pvticket lock series. The early part of the series is mostly unchanged: it converts the bulk of the ticket lock code into C and makes the "small" and "large" ticket code common. The only changes are the incorporation of various review comments. The latter part of
2013 Jun 01
11
[PATCH RFC V9 0/19] Paravirtualized ticket spinlocks
This series replaces the existing paravirtualized spinlock mechanism with a paravirtualized ticketlock mechanism. The series provides implementation for both Xen and KVM. Changes in V9: - Changed spin_threshold to 32k to avoid excess halt exits that are causing undercommit degradation (after PLE handler improvement). - Added kvm_irq_delivery_to_apic (suggested by Gleb) - Optimized halt exit
2013 Jun 01
11
[PATCH RFC V9 0/19] Paravirtualized ticket spinlocks
This series replaces the existing paravirtualized spinlock mechanism with a paravirtualized ticketlock mechanism. The series provides implementation for both Xen and KVM. Changes in V9: - Changed spin_threshold to 32k to avoid excess halt exits that are causing undercommit degradation (after PLE handler improvement). - Added kvm_irq_delivery_to_apic (suggested by Gleb) - Optimized halt exit
2013 Jun 01
11
[PATCH RFC V9 0/19] Paravirtualized ticket spinlocks
This series replaces the existing paravirtualized spinlock mechanism with a paravirtualized ticketlock mechanism. The series provides implementation for both Xen and KVM. Changes in V9: - Changed spin_threshold to 32k to avoid excess halt exits that are causing undercommit degradation (after PLE handler improvement). - Added kvm_irq_delivery_to_apic (suggested by Gleb) - Optimized halt exit