Re: [RFC][PATCH] kmap_atomic_push

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

 



On Mon, Oct 12, 2009 at 11:30:07AM -0700, Linus Torvalds wrote:
> 
> 
> On Mon, 12 Oct 2009, Andi Kleen wrote:
> 
> > Peter Zijlstra <peterz@xxxxxxxxxxxxx> writes:
> > > -
> > > -static inline void debug_kmap_atomic(enum km_type type)
> > > +static inline int kmap_atomic_push_idx(void)
> > >  {
> > > +	int idx = __get_cpu_var(__kmap_atomic_depth)++;
> > 
> > The counter needs to be of local atomic type. Otherwise kmap_atomic cannot
> > be done from interrupts/nmis, which is unfortunately occasionally needed.
> 
> I thought so too on lookin gat it initially, but it's not actually true.
> 
> It's both IRQ and NMI safe as-is, for a very simple reason: any interrupts 

Good point, thanks.

I was thinking of CPU migration in interrupt cases, but even there
it should be ok in mainline.

I suppose it's not true for the preempt-rt folks (who can migrate
CPUs at any time), so it might be still more friendly to handle it for them 
though.

-Andi

-- 
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux