| Date | Thu, 10 Oct 2013 20:00:14 +0000 | From | Christoph Lameter <> | Subject | Re: [PATCH 34/34] mm: dynamically allocate page->ptl if it cannot be embedded to struct page |
| |
On Thu, 10 Oct 2013, Kirill A. Shutemov wrote:
> +static inline bool ptlock_alloc(struct page *page) > +{ > + if (sizeof(spinlock_t) > sizeof(page->ptl)) > + return __ptlock_alloc(page); > + return true; > +}
Could you make the check a CONFIG option? CONFIG_PTLOCK_DOES_NOT_FIT_IN_PAGE_STRUCT or so?
> --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -147,7 +147,10 @@ struct page { > * system if PG_buddy is set. > */ > #if USE_SPLIT_PTE_PTLOCKS > - spinlock_t ptl; > + unsigned long ptl; /* It's spinlock_t if it fits to long, > + * otherwise it's pointer to dynamicaly > + * allocated spinlock_t. > + */
If you had such a CONFIG option then you could use the proper type here.
#ifdef CONFIG_PTLOCK_NOT_FITTING spinlock_t *ptl; #else spinlock_t ptl; #endif
Or some such thing?
|