On 9/28/20 5:31 PM, Cornelia Huck wrote: > On Mon, 28 Sep 2020 16:23:34 +0200 > Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote: > >> Some architectures need allocations to be done under a >> specific address limit to allow DMA from I/O. >> >> We propose here a very simple page allocator to get >> pages allocated under this specific limit. >> >> The DMA page allocator will only use part of the available memory >> under the DMA address limit to let room for the standard allocator. >> >> Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> >> --- >> lib/alloc_dma_page.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ >> lib/alloc_dma_page.h | 24 +++++++++++++++++++ >> lib/s390x/sclp.c | 2 ++ >> s390x/Makefile | 1 + >> 4 files changed, 84 insertions(+) >> create mode 100644 lib/alloc_dma_page.c >> create mode 100644 lib/alloc_dma_page.h > > (...) > >> diff --git a/lib/alloc_dma_page.h b/lib/alloc_dma_page.h >> new file mode 100644 >> index 0000000..85e1d2f >> --- /dev/null >> +++ b/lib/alloc_dma_page.h >> @@ -0,0 +1,24 @@ >> +/* >> + * Page allocator for DMA definitions >> + * >> + * Copyright (c) IBM, Corp. 2020 >> + * >> + * Authors: >> + * Pierre Morel <pmorel@xxxxxxxxxxxxx> >> + * >> + * This code is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Library General Public License version 2. >> + */ >> +#ifndef _ALLOC_DMA_PAGE_H_ >> +#define _ALLOC_DMA_PAGE_H_ >> + >> +#include <asm/page.h> >> + >> +void put_dma_page(void *dma_page); >> +void *get_dma_page(void); >> +phys_addr_t dma_page_alloc_init(phys_addr_t start_pfn, phys_addr_t nb_pages); >> + >> +#define DMA_MAX_PFN (0x80000000 >> PAGE_SHIFT) >> +#define DMA_ALLOC_RATIO 8 > > Hm, shouldn't the architecture be able to decide where a dma page can > be located? Or am I misunderstanding? Before we start any other discussion on this patch we should clear up if this is still necessary after Claudio's alloc revamp. I think he added options to request special types of memory. > >> + >> +#endif /* _ALLOC_DMA_PAGE_H_ */ > (...) >
Attachment:
signature.asc
Description: OpenPGP digital signature