Re: [kvm-unit-tests PATCH v2 1/4] memory: allocation in low memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?

> +
> +#endif /* _ALLOC_DMA_PAGE_H_ */
(...)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux