From: hch@lst.de (Christoph Hellwig)
To: linux-riscv@lists.infradead.org
Subject: [PATCH 5/5] RISC-V: Implement sparsemem
Date: Thu, 11 Oct 2018 15:37:30 +0200 [thread overview]
Message-ID: <20181011133730.GB7276@lst.de> (raw)
In-Reply-To: <20181005161642.2462-6-logang@deltatee.com>
> +/*
> + * Log2 of the upper bound of the size of a struct page. Used for sizing
> + * the vmemmap region only, does not affect actual memory footprint.
> + * We don't use sizeof(struct page) directly since taking its size here
> + * requires its definition to be available at this point in the inclusion
> + * chain, and it may not be a power of 2 in the first place.
> + */
> +#define STRUCT_PAGE_MAX_SHIFT 6
I know this is copied from arm64, but wouldn't this be a good time
to move this next to the struct page defintion?
Also this:
arch/arm64/mm/init.c: BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));
should move to comment code (or would have to be duplicated for riscv)
> +#define VMEMMAP_SIZE (UL(1) << (CONFIG_VA_BITS - PAGE_SHIFT - 1 + \
> + STRUCT_PAGE_MAX_SHIFT))
Might be more readable with a another define, and without abuse of the
horrible UL macro:
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE (1UL << VMEMMAP_SHIFT)
> +#define VMEMMAP_END (VMALLOC_START - 1)
> +#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
> +
> +#define vmemmap ((struct page *)VMEMMAP_START)
This could also use some comments..
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __ASM_SPARSEMEM_H
> +#define __ASM_SPARSEMEM_H
> +
> +#ifdef CONFIG_SPARSEMEM
> +#define MAX_PHYSMEM_BITS CONFIG_PA_BITS
> +#define SECTION_SIZE_BITS 30
> +#endif
> +
> +#endif
For potentially wide-spanning ifdefs like inclusion headers it always
is nice to have a comment with the symbol on the endif line.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Logan Gunthorpe <logang@deltatee.com>
Cc: Rob Herring <robh@kernel.org>, Albert Ou <aou@eecs.berkeley.edu>,
Andrew Waterman <andrew@sifive.com>,
linux-sh@vger.kernel.org, Palmer Dabbelt <palmer@sifive.com>,
linux-kernel@vger.kernel.org, Stephen Bates <sbates@raithlin.com>,
Zong Li <zong@andestech.com>,
linux-mm@kvack.org, Olof Johansson <olof@lixom.net>,
linux-riscv@lists.infradead.org,
Michael Clark <michaeljclark@mac.com>,
Christoph Hellwig <hch@lst.de>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 5/5] RISC-V: Implement sparsemem
Date: Thu, 11 Oct 2018 15:37:30 +0200 [thread overview]
Message-ID: <20181011133730.GB7276@lst.de> (raw)
Message-ID: <20181011133730.zc3nM_RI0NGqsVMfi_1NFSxtfRkCju7m8cqsJGJtfMs@z> (raw)
In-Reply-To: <20181005161642.2462-6-logang@deltatee.com>
> +/*
> + * Log2 of the upper bound of the size of a struct page. Used for sizing
> + * the vmemmap region only, does not affect actual memory footprint.
> + * We don't use sizeof(struct page) directly since taking its size here
> + * requires its definition to be available at this point in the inclusion
> + * chain, and it may not be a power of 2 in the first place.
> + */
> +#define STRUCT_PAGE_MAX_SHIFT 6
I know this is copied from arm64, but wouldn't this be a good time
to move this next to the struct page defintion?
Also this:
arch/arm64/mm/init.c: BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));
should move to comment code (or would have to be duplicated for riscv)
> +#define VMEMMAP_SIZE (UL(1) << (CONFIG_VA_BITS - PAGE_SHIFT - 1 + \
> + STRUCT_PAGE_MAX_SHIFT))
Might be more readable with a another define, and without abuse of the
horrible UL macro:
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE (1UL << VMEMMAP_SHIFT)
> +#define VMEMMAP_END (VMALLOC_START - 1)
> +#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
> +
> +#define vmemmap ((struct page *)VMEMMAP_START)
This could also use some comments..
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __ASM_SPARSEMEM_H
> +#define __ASM_SPARSEMEM_H
> +
> +#ifdef CONFIG_SPARSEMEM
> +#define MAX_PHYSMEM_BITS CONFIG_PA_BITS
> +#define SECTION_SIZE_BITS 30
> +#endif
> +
> +#endif
For potentially wide-spanning ifdefs like inclusion headers it always
is nice to have a comment with the symbol on the endif line.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 5/5] RISC-V: Implement sparsemem
Date: Thu, 11 Oct 2018 13:37:30 +0000 [thread overview]
Message-ID: <20181011133730.GB7276@lst.de> (raw)
In-Reply-To: <20181005161642.2462-6-logang@deltatee.com>
> +/*
> + * Log2 of the upper bound of the size of a struct page. Used for sizing
> + * the vmemmap region only, does not affect actual memory footprint.
> + * We don't use sizeof(struct page) directly since taking its size here
> + * requires its definition to be available at this point in the inclusion
> + * chain, and it may not be a power of 2 in the first place.
> + */
> +#define STRUCT_PAGE_MAX_SHIFT 6
I know this is copied from arm64, but wouldn't this be a good time
to move this next to the struct page defintion?
Also this:
arch/arm64/mm/init.c: BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));
should move to comment code (or would have to be duplicated for riscv)
> +#define VMEMMAP_SIZE (UL(1) << (CONFIG_VA_BITS - PAGE_SHIFT - 1 + \
> + STRUCT_PAGE_MAX_SHIFT))
Might be more readable with a another define, and without abuse of the
horrible UL macro:
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE (1UL << VMEMMAP_SHIFT)
> +#define VMEMMAP_END (VMALLOC_START - 1)
> +#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
> +
> +#define vmemmap ((struct page *)VMEMMAP_START)
This could also use some comments..
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __ASM_SPARSEMEM_H
> +#define __ASM_SPARSEMEM_H
> +
> +#ifdef CONFIG_SPARSEMEM
> +#define MAX_PHYSMEM_BITS CONFIG_PA_BITS
> +#define SECTION_SIZE_BITS 30
> +#endif
> +
> +#endif
For potentially wide-spanning ifdefs like inclusion headers it always
is nice to have a comment with the symbol on the endif line.
WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/5] RISC-V: Implement sparsemem
Date: Thu, 11 Oct 2018 15:37:30 +0200 [thread overview]
Message-ID: <20181011133730.GB7276@lst.de> (raw)
In-Reply-To: <20181005161642.2462-6-logang@deltatee.com>
> +/*
> + * Log2 of the upper bound of the size of a struct page. Used for sizing
> + * the vmemmap region only, does not affect actual memory footprint.
> + * We don't use sizeof(struct page) directly since taking its size here
> + * requires its definition to be available at this point in the inclusion
> + * chain, and it may not be a power of 2 in the first place.
> + */
> +#define STRUCT_PAGE_MAX_SHIFT 6
I know this is copied from arm64, but wouldn't this be a good time
to move this next to the struct page defintion?
Also this:
arch/arm64/mm/init.c: BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));
should move to comment code (or would have to be duplicated for riscv)
> +#define VMEMMAP_SIZE (UL(1) << (CONFIG_VA_BITS - PAGE_SHIFT - 1 + \
> + STRUCT_PAGE_MAX_SHIFT))
Might be more readable with a another define, and without abuse of the
horrible UL macro:
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE (1UL << VMEMMAP_SHIFT)
> +#define VMEMMAP_END (VMALLOC_START - 1)
> +#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
> +
> +#define vmemmap ((struct page *)VMEMMAP_START)
This could also use some comments..
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __ASM_SPARSEMEM_H
> +#define __ASM_SPARSEMEM_H
> +
> +#ifdef CONFIG_SPARSEMEM
> +#define MAX_PHYSMEM_BITS CONFIG_PA_BITS
> +#define SECTION_SIZE_BITS 30
> +#endif
> +
> +#endif
For potentially wide-spanning ifdefs like inclusion headers it always
is nice to have a comment with the symbol on the endif line.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Logan Gunthorpe <logang@deltatee.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, linux-sh@vger.kernel.org,
Stephen Bates <sbates@raithlin.com>,
Palmer Dabbelt <palmer@sifive.com>,
Albert Ou <aou@eecs.berkeley.edu>, Christoph Hellwig <hch@lst.de>,
Andrew Waterman <andrew@sifive.com>,
Olof Johansson <olof@lixom.net>,
Michael Clark <michaeljclark@mac.com>,
Rob Herring <robh@kernel.org>, Zong Li <zong@andestech.com>
Subject: Re: [PATCH 5/5] RISC-V: Implement sparsemem
Date: Thu, 11 Oct 2018 15:37:30 +0200 [thread overview]
Message-ID: <20181011133730.GB7276@lst.de> (raw)
In-Reply-To: <20181005161642.2462-6-logang@deltatee.com>
> +/*
> + * Log2 of the upper bound of the size of a struct page. Used for sizing
> + * the vmemmap region only, does not affect actual memory footprint.
> + * We don't use sizeof(struct page) directly since taking its size here
> + * requires its definition to be available at this point in the inclusion
> + * chain, and it may not be a power of 2 in the first place.
> + */
> +#define STRUCT_PAGE_MAX_SHIFT 6
I know this is copied from arm64, but wouldn't this be a good time
to move this next to the struct page defintion?
Also this:
arch/arm64/mm/init.c: BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));
should move to comment code (or would have to be duplicated for riscv)
> +#define VMEMMAP_SIZE (UL(1) << (CONFIG_VA_BITS - PAGE_SHIFT - 1 + \
> + STRUCT_PAGE_MAX_SHIFT))
Might be more readable with a another define, and without abuse of the
horrible UL macro:
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE (1UL << VMEMMAP_SHIFT)
> +#define VMEMMAP_END (VMALLOC_START - 1)
> +#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
> +
> +#define vmemmap ((struct page *)VMEMMAP_START)
This could also use some comments..
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __ASM_SPARSEMEM_H
> +#define __ASM_SPARSEMEM_H
> +
> +#ifdef CONFIG_SPARSEMEM
> +#define MAX_PHYSMEM_BITS CONFIG_PA_BITS
> +#define SECTION_SIZE_BITS 30
> +#endif
> +
> +#endif
For potentially wide-spanning ifdefs like inclusion headers it always
is nice to have a comment with the symbol on the endif line.
next prev parent reply other threads:[~2018-10-11 13:37 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 16:16 [PATCH 0/5] sparsemem support for RISC-V Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` [PATCH 1/5] mm/sparse: add common helper to mark all memblocks present Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-11 13:30 ` Christoph Hellwig
2018-10-11 13:30 ` Christoph Hellwig
2018-10-11 13:30 ` Christoph Hellwig
2018-10-11 13:30 ` Christoph Hellwig
2018-10-11 13:30 ` Christoph Hellwig
2018-10-05 16:16 ` [PATCH 2/5] ARM: mm: make use of new memblocks_present() helper Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` [PATCH 3/5] arm64: " Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:32 ` Catalin Marinas
2018-10-05 16:32 ` Catalin Marinas
2018-10-05 16:32 ` Catalin Marinas
2018-10-05 16:32 ` Catalin Marinas
2018-10-05 16:32 ` Catalin Marinas
2018-10-05 16:16 ` [PATCH 4/5] sh: " Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` [PATCH 5/5] RISC-V: Implement sparsemem Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-05 16:16 ` Logan Gunthorpe
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 0:27 ` Palmer Dabbelt
2018-10-11 12:18 ` Stephen Bates
2018-10-11 12:18 ` Stephen Bates
2018-10-11 12:18 ` Stephen Bates
2018-10-11 12:18 ` Stephen Bates
2018-10-11 12:18 ` Stephen Bates
2018-10-11 12:18 ` Stephen Bates
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-15 17:39 ` Palmer Dabbelt
2018-10-11 13:37 ` Christoph Hellwig [this message]
2018-10-11 13:37 ` Christoph Hellwig
2018-10-11 13:37 ` Christoph Hellwig
2018-10-11 13:37 ` Christoph Hellwig
2018-10-11 13:37 ` Christoph Hellwig
2018-10-11 16:24 ` Logan Gunthorpe
2018-10-11 16:24 ` Logan Gunthorpe
2018-10-11 16:24 ` Logan Gunthorpe
2018-10-11 16:24 ` Logan Gunthorpe
2018-10-11 16:24 ` Logan Gunthorpe
2018-10-11 17:30 ` Logan Gunthorpe
2018-10-11 17:30 ` Logan Gunthorpe
2018-10-11 17:30 ` Logan Gunthorpe
2018-10-11 17:30 ` Logan Gunthorpe
2018-10-11 17:30 ` Logan Gunthorpe
2018-10-11 18:45 ` Logan Gunthorpe
2018-10-11 18:45 ` Logan Gunthorpe
2018-10-11 18:45 ` Logan Gunthorpe
2018-10-11 18:45 ` Logan Gunthorpe
2018-10-11 18:45 ` Logan Gunthorpe
2018-10-11 20:21 ` Logan Gunthorpe
2018-10-11 20:21 ` Logan Gunthorpe
2018-10-11 20:21 ` Logan Gunthorpe
2018-10-11 20:21 ` Logan Gunthorpe
2018-10-11 20:21 ` Logan Gunthorpe
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=20181011133730.GB7276@lst.de \
--to=hch@lst.de \
--cc=linux-riscv@lists.infradead.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.