[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141127164555.4bcebfe8@thinkpad-w530>
Date: Thu, 27 Nov 2014 16:45:55 +0100
From: David Hildenbrand <dahi@...ux.vnet.ibm.com>
To: David Laight <David.Laight@...LAB.COM>
Cc: Thomas Gleixner <tglx@...utronix.de>,
"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
"Michael S. Tsirkin" <mst@...hat.com>,
Heiko Carstens <heiko.carstens@...ibm.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Christian Borntraeger" <borntraeger@...ibm.com>,
"paulus@...ba.org" <paulus@...ba.org>,
"schwidefsky@...ibm.com" <schwidefsky@...ibm.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"linuxppc-dev@...ts.ozlabs.org" <linuxppc-dev@...ts.ozlabs.org>,
"mingo@...nel.org" <mingo@...nel.org>
Subject: Re: [RFC 0/2] Reenable might_sleep() checks for might_fault() when
atomic
> From: David Hildenbrand
> ...
> > Although it might not be optimal, but keeping a separate counter for
> > pagefault_disable() as part of the preemption counter seems to be the only
> > doable thing right now. I am not sure if a completely separated counter is even
> > possible, increasing the size of thread_info.
>
> What about adding (say) 0x10000 for the more restrictive test?
>
> David
>
You mean as part of the preempt counter?
The current layout (on my branch) is
* PREEMPT_MASK: 0x000000ff
* SOFTIRQ_MASK: 0x0000ff00
* HARDIRQ_MASK: 0x000f0000
* NMI_MASK: 0x00100000
* PREEMPT_ACTIVE: 0x00200000
I would have added
* PAGEFAULT_MASK: 0x03C00000
So 4 bit == 16 levels (tbd)
By implementing scope checks in the debug case like done for the regular
preempt_count_inc() preempt_count_dec(), we could catch over/underflows.
Thanks,
David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists