linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Ludovic Desroches <ludovic.desroches@atmel.com>
To: Ludovic Desroches <ludovic.desroches@atmel.com>,
	linux-mm@kvack.org, christoph@lameter.com
Cc: linux-arm-kernel@lists.infradead.org
Subject: Re: atmel-mci causes kernel panic when CONFIG_DEBUG_VM is set
Date: Thu, 19 May 2011 17:16:43 +0200	[thread overview]
Message-ID: <4DD5345B.8010305@atmel.com> (raw)
In-Reply-To: <4DD50A72.2050501@atmel.com>

As suggested I forward the question to Christoph Lameter and linux-mm.

Thanks for your help.

Regards

Ludovic Desroches

On 5/19/2011 2:17 PM, Ludovic Desroches wrote:
> On 5/19/2011 11:24 AM, Ludovic Desroches wrote:
>> On 5/19/2011 10:04 AM, Barry Song wrote:
>>> 2011/5/19 Ludovic Desroches<ludovic.desroches@atmel.com>:
>>>> Hello,
>>>>
>>>> There is a bug with the atmel-mci driver when the debug feature
>>>> CONFIG_DEBUG_VM is set.
>>>>
>>>> Into the atmci_read_data_pio function we use flush_dcache_page (do 
>>>> we really
>>>> need it?) which call the page_mapping function where we can find
>>>> VM_BUG_ON(PageSlab(Page)). Then a kernel panic happens.
>>>>
>>>> I don't understand the purpose of the VM_BUG_ON(PageSlab(Page)) 
>>>> (the page
>>>> comes from a scatter list). How could I correct this problem?
>>> linux/include/linux/mmdebug.h:
>>>
>>> #ifdef CONFIG_DEBUG_VM
>>> #define VM_BUG_ON(cond) BUG_ON(cond)
>>> #else
>>> #define VM_BUG_ON(cond) do { (void)(cond); } while (0)
>>> #endif
>>>
>>> it is something like "assert" in kernel.
>>
>> Thanks for your answer but I know that. My question is more focused 
>> on why there is this check.
> This the reason:
>
> commit b5fab14e5d87df4d94161ae5f5e0c8625f9ffda2
> Author: Christoph Lameter <clameter@sgi.com>
> Date:   Tue Jul 17 04:03:33 2007 -0700
>
>     Add VM_BUG_ON in case someone uses page_mapping on a slab page
>
>     Detect slab objects being passed to the page oriented functions of 
> the VM.
>
>     It is not sufficient to simply return NULL because the functions 
> calling
>     page_mapping may depend on other items of the page_struct also to 
> be setup
>     properly.  Moreover slab object may not be properly aligned.  The 
> page
>     oriented functions of the VM expect to operate on page aligned, 
> page sized
>     objects.  Operations on object straddling page boundaries may only 
> affect the
>     objects partially which may lead to surprising results.
>
>     It is better to detect eventually remaining uses and eliminate them.
>
>
>> Is flushing a page taken from a slab forbidden ? Is it risky ? Is it 
>> no sense ?
>>
> Other drivers do a flush_dcache_page on a page coming from a scatter 
> list. So I think they will also have an assert when CONFIG_DEBUG_VM is 
> set.
>
> What is the proper way to do this flush (if needed) ?
>
>
> Regards,
>
> Ludovic
>
>


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

       reply	other threads:[~2011-05-19 15:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4DD4CC68.80408@atmel.com>
     [not found] ` <BANLkTinaPW5xcdrNewJC6OW9nqWHC_-TVw@mail.gmail.com>
     [not found]   ` <4DD4E1DF.7030005@atmel.com>
     [not found]     ` <4DD50A72.2050501@atmel.com>
2011-05-19 15:16       ` Ludovic Desroches [this message]
2011-05-19 18:25 ` Uwe Kleine-König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DD5345B.8010305@atmel.com \
    --to=ludovic.desroches@atmel.com \
    --cc=christoph@lameter.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox