* __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC?
@ 2007-06-03 8:41 Robert P. J. Day
2007-06-04 18:45 ` Christoph Lameter
0 siblings, 1 reply; 5+ messages in thread
From: Robert P. J. Day @ 2007-06-03 8:41 UTC (permalink / raw)
To: Linux Kernel Mailing List
a two-parter:
first, can a call to __get_free_pages to allocate DMA-able memory
omit specifying either of GFP_KERNEL or GFP_ATOMIC? love's book on
kernel development strongly suggests you need to specify one or the
other, but there are a few instances in the tree like this:
drivers/s390/net/claw.c: (void *)__get_free_pages(__GFP_DMA,
drivers/s390/net/claw.c: p_buff=(void *)__get_free_pages(__GFP_DMA,
where you can see that the only type flag is __GFP_DMA. is that
meaningful?
and, second, i only noticed this as i was going to submit a short
patch to replace __get_free_pages calls for DMA-able memory with the
existing equivalent macro __get_dma_pages. is that still considered a
worthwhile cleanup? there's not that many examples of it, and it
would just make things consistent.
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC?
2007-06-03 8:41 __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC? Robert P. J. Day
@ 2007-06-04 18:45 ` Christoph Lameter
2007-06-04 18:53 ` Robert P. J. Day
0 siblings, 1 reply; 5+ messages in thread
From: Christoph Lameter @ 2007-06-04 18:45 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List
On Sun, 3 Jun 2007, Robert P. J. Day wrote:
> first, can a call to __get_free_pages to allocate DMA-able memory
> omit specifying either of GFP_KERNEL or GFP_ATOMIC? love's book on
> kernel development strongly suggests you need to specify one or the
> other, but there are a few instances in the tree like this:
Sure that seems to be equivalent to GFP_ATOMIC with no access to emergency
pool memory.
> and, second, i only noticed this as i was going to submit a short
> patch to replace __get_free_pages calls for DMA-able memory with the
> existing equivalent macro __get_dma_pages. is that still considered a
> worthwhile cleanup? there's not that many examples of it, and it
> would just make things consistent.
Sure.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC?
2007-06-04 18:45 ` Christoph Lameter
@ 2007-06-04 18:53 ` Robert P. J. Day
2007-06-04 19:02 ` Christoph Lameter
0 siblings, 1 reply; 5+ messages in thread
From: Robert P. J. Day @ 2007-06-04 18:53 UTC (permalink / raw)
To: Christoph Lameter; +Cc: Linux Kernel Mailing List
On Mon, 4 Jun 2007, Christoph Lameter wrote:
> On Sun, 3 Jun 2007, Robert P. J. Day wrote:
>
> > first, can a call to __get_free_pages to allocate DMA-able
> > memory omit specifying either of GFP_KERNEL or GFP_ATOMIC?
> > love's book on kernel development strongly suggests you need to
> > specify one or the other, but there are a few instances in the
> > tree like this:
>
> Sure that seems to be equivalent to GFP_ATOMIC with no access to
> emergency pool memory.
>
> > and, second, i only noticed this as i was going to submit a
> > short patch to replace __get_free_pages calls for DMA-able memory
> > with the existing equivalent macro __get_dma_pages. is that still
> > considered a worthwhile cleanup? there's not that many examples
> > of it, and it would just make things consistent.
>
> Sure.
all right, then some of those __get_free_pages() calls would translate
to calls of the form __get_dma_pages(0, ...) -- is that what you're
saying? or would it be equivalent and preferable to put GFP_ATOMIC in
there just so it looks not so weird?
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC?
2007-06-04 18:53 ` Robert P. J. Day
@ 2007-06-04 19:02 ` Christoph Lameter
2007-06-04 19:07 ` Robert P. J. Day
0 siblings, 1 reply; 5+ messages in thread
From: Christoph Lameter @ 2007-06-04 19:02 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List
On Mon, 4 Jun 2007, Robert P. J. Day wrote:
> all right, then some of those __get_free_pages() calls would translate
> to calls of the form __get_dma_pages(0, ...) -- is that what you're
> saying? or would it be equivalent and preferable to put GFP_ATOMIC in
> there just so it looks not so weird?
Put GFP_ATOMIC in there so that it does not look weird.
GFP_ATOMIC & ~__GFP_HIGH == GFP_NOWAIT
So these should have GFP_NOWAIT as far as I can tell?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC?
2007-06-04 19:02 ` Christoph Lameter
@ 2007-06-04 19:07 ` Robert P. J. Day
0 siblings, 0 replies; 5+ messages in thread
From: Robert P. J. Day @ 2007-06-04 19:07 UTC (permalink / raw)
To: Christoph Lameter; +Cc: Linux Kernel Mailing List
On Mon, 4 Jun 2007, Christoph Lameter wrote:
> On Mon, 4 Jun 2007, Robert P. J. Day wrote:
>
> > all right, then some of those __get_free_pages() calls would translate
> > to calls of the form __get_dma_pages(0, ...) -- is that what you're
> > saying? or would it be equivalent and preferable to put GFP_ATOMIC in
> > there just so it looks not so weird?
>
> Put GFP_ATOMIC in there so that it does not look weird.
>
> GFP_ATOMIC & ~__GFP_HIGH == GFP_NOWAIT
>
> So these should have GFP_NOWAIT as far as I can tell?
beats me. just FYI, it's not like this would be a massive change --
here's the entire collection of candidates for conversion over to
__get_dma_pages():
$ grep -r "get_free.*GFP_DMA" *
arch/s390/kernel/smp.c: __get_free_pages(GFP_KERNEL | GFP_DMA,
drivers/net/arm/ep93xx_eth.c: page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
drivers/net/arm/ep93xx_eth.c: page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
drivers/s390/net/qeth_main.c: ptr = (void *) __get_free_page(GFP_KERNEL|GFP_DMA);
drivers/s390/net/claw.c: (void *)__get_free_pages(__GFP_DMA,
drivers/s390/net/claw.c: (void *)__get_free_pages(__GFP_DMA,
drivers/s390/net/claw.c: p_buff=(void *)__get_free_pages(__GFP_DMA,
drivers/s390/net/claw.c: (void *)__get_free_pages(__GFP_DMA,
drivers/s390/net/claw.c: p_buff = (void *)__get_free_pages(__GFP_DMA,
drivers/s390/block/dasd.c: device->ccw_mem = (void *) __get_free_pages(GFP_ATOMIC | GFP_DMA, 1);
drivers/s390/char/tty3270.c: __get_free_pages(GFP_KERNEL|GFP_DMA, 0);
drivers/s390/char/sclp_cpi.c: sccb = (struct cpi_sccb *) __get_free_page(GFP_KERNEL | GFP_DMA);
drivers/s390/cio/cmf.c: mem = (void*)__get_free_pages(GFP_KERNEL | GFP_DMA,
lib/swiotlb.c: io_tlb_start = (char *)__get_free_pages(GFP_DMA | __GFP_NOWARN,
lib/swiotlb.c: io_tlb_overflow_buffer = (void *)__get_free_pages(GFP_DMA,
sound/oss/sscape.c: start_addr = (char *) __get_free_pages(GFP_ATOMIC|GFP_DMA, sz);
sound/oss/hal2.c: codec->buffer = (unsigned char *)__get_free_pages(GFP_KERNEL | GFP_DMA,
sound/oss/dmabuf.c: start_addr = (char *) __get_free_pages(GFP_ATOMIC|GFP_DMA|__GFP_NOWARN, sz);
and, obviously, it's not worth doing anything under sound/. so
we're not talking enormous cleanup or anything.
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-06-04 19:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-03 8:41 __get_free_pages: can GFP_DMA omit GFP_KERNEL and GFP_ATOMIC? Robert P. J. Day
2007-06-04 18:45 ` Christoph Lameter
2007-06-04 18:53 ` Robert P. J. Day
2007-06-04 19:02 ` Christoph Lameter
2007-06-04 19:07 ` Robert P. J. Day
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®