lkml.org 
[lkml]   [2002]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: pci_alloc_consistent from interrupt == BAD
    From
       From: Dan Malek <dan@embeddededge.com>
    Date: Fri, 18 Jan 2002 14:22:03 -0500

    > Somehow the docs in DMA-mappings.txt say pci_alloc_consistent is allowed from
    > interrupt, but this is a "bad thing" on at least arm and PPC non-cache
    > coherent cpus.

    This isn't unique to PowerPC or ARM, and has nothing to do with allocating
    page tables.

    Yes it is in fact unique to those ports...

    I don't understand how pci_alloc_consistent could ever be claimed to work
    from an interrupt function because it actually allocates pages of memory
    for all architectures. Anytime you call alloc_pages() (or friends) you could
    potentially block or return an error (out of memory) condition.

    If it specifies GFP_ATOMIC, there are no problems from interrupts.
    You will see that every port other than the mentioned two above use
    GFP_ATOMIC in their pci_alloc_consistent implementation, for this very
    reason.

    The ARM and PPC ports could set __GFP_HIGH in their page table
    allocation calls when invoked via pci_alloc_consistent, and this is
    the change I suggest they make. It is a trivial fix whereas backing
    out this ability to call pci_alloc_consistent from interrupts is not
    a trivial change at all.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:15    [W:0.031 / U:62.756 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site