Re: [PATCH v2] mm: BUG when __kmap_atomic_idx equals KM_TYPE_NR

From: Chintan Pandya
Date: Thu Jul 31 2014 - 05:29:10 EST


On 07/31/2014 12:32 PM, David Rientjes wrote:
On Thu, 31 Jul 2014, Chintan Pandya wrote:

__kmap_atomic_idx is per_cpu variable. Each CPU can
use KM_TYPE_NR entries from FIXMAP i.e. from 0 to
KM_TYPE_NR - 1. Allowing __kmap_atomic_idx to over-
shoot to KM_TYPE_NR can mess up with next CPU's 0th
entry which is a bug. Hence BUG_ON if
__kmap_atomic_idx>= KM_TYPE_NR.


This appears to be a completely different patch, not a v2. Why is this
check only done for CONFIG_DEBUG_HIGHMEM?

I agree that this check could have been there even without CONFIG_DEBUG_HIGHMEM for stability reasons.


I think Andrew's comment earlier was referring to the changelog only and
not the patch, which looked correct.

I think Andrew asked for a BUG case details also to justify the overhead. But we have never encountered that BUG case. Present patch is only logical fix to the code. However, in the fast path, if such overhead is allowed, I can move BUG_ON out of any debug configs. Otherwise, as per Andrew's suggestion, I will convert DEBUG_HIGHMEM into DEBUG_VM which is used more frequently.


Signed-off-by: Chintan Pandya<cpandya@xxxxxxxxxxxxxx>
---
Changes:




--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/