All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Andrew Morton <akpm@digeo.com>
Cc: David Miller <davem@redhat.com>,
	Paul Mackerras <paulus@samba.org>,
	linux-kernel@vger.kernel.org,
	linuxppc-embedded@lists.linuxppc.org
Subject: Re: [PATCH,RFC] Add gfp_mask to get_vm_area()
Date: Tue, 1 Oct 2002 15:34:17 +1000	[thread overview]
Message-ID: <20021001053417.GW10265@zax> (raw)
In-Reply-To: <3D992DB0.9A8942D@digeo.com>

On Mon, Sep 30, 2002 at 10:08:00PM -0700, Andrew Morton wrote:
> 
> David Gibson wrote:
> >
> > Dave, please consider this patch.  It renames get_vm_area() to
> > __get_vm_area() and adds a gfp_mask parameter which is passed on to
> > kmalloc().  get_vm_area(size,flags) is then defined as as
> > __get_vm_area(size,flags,GFP_KERNEL) to avoid messing with existing
> > callers.
> >
> > We need this in order to sanely make pci_alloc_consistent() (and other
> > consistent allocation functions) obey the DMA-mapping.txt rules on PPC
> > embedded machines (specifically the requirement that it be callable
> > from interrupt context).
> >
> 
> I can look after that for you.  But I'd prefer that you just add the
> extra gfp_flags argument to get_vm_area() and update the 16 callers.
> 
> You cannot call get_vm_area() from interrupt context at present;
> it does write_lock(&vmlist_lock) unsafely.

Oh crap, I'm an idiot.  I've even seen prototype patches for this one
that changed the write_lock() to write_lock_irq(). Duh.

> It would be a bit sad to make vmlist_lock interrupt-safe for this.  Is
> there no alternative?

I don't see an easy one: PPC 4xx has non-coherent cache, so we have to
mark consistent memory non-cacheable.  We want to make the normal
lowmem mapping use large page TLB entries, so we can't frob the
attribute bits on the pages in place.  That means we need to create a
new, non-cacheable mapping for the physical RAM we allocate, which in
turn means allocating a chunk of kernel virtual memory.

> (And what the hell is arch/alpha/mm/init.c:callback_init() doing rewriting
> vmlist?  Somebody shoot that code)

-- 
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

  reply	other threads:[~2002-10-01  5:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-01  4:42 [PATCH,RFC] Add gfp_mask to get_vm_area() David Gibson
2002-10-01  4:37 ` David S. Miller
2002-10-01  5:08 ` Andrew Morton
2002-10-01  5:34   ` David Gibson [this message]
2002-10-01  8:42     ` Russell King
2002-10-02  1:18       ` David Gibson
2002-10-03  4:39     ` David Gibson
2002-10-03  4:56       ` David Gibson
2002-10-03 15:18         ` Russell King
2002-10-04  3:27           ` David Gibson

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=20021001053417.GW10265@zax \
    --to=david@gibson.dropbear.id.au \
    --cc=akpm@digeo.com \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-embedded@lists.linuxppc.org \
    --cc=paulus@samba.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.