2019-04-23 16:33:11

by Christoph Hellwig

[permalink] [raw]
Subject: two small nommu cleanups

Hi all,

these two patches avoid writing some boilerplate code for the upcoming
RISC-V nommu support, and might also help to clean up existing nommu
support in other architectures down the road.


2019-04-23 16:33:16

by Christoph Hellwig

[permalink] [raw]
Subject: [PATCH 2/2] mm: stub out all of swapops.h for !CONFIG_MMU

The whole header file deals with swap entries and PTEs, none of which
can exist for nommu builds.

Signed-off-by: Christoph Hellwig <[email protected]>
---
include/linux/swapops.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/swapops.h b/include/linux/swapops.h
index 4d961668e5fc..b02922556846 100644
--- a/include/linux/swapops.h
+++ b/include/linux/swapops.h
@@ -6,6 +6,8 @@
#include <linux/bug.h>
#include <linux/mm_types.h>

+#ifdef CONFIG_MMU
+
/*
* swapcache pages are stored in the swapper_space radix tree. We want to
* get good packing density in that tree, so the index should be dense in
@@ -50,13 +52,11 @@ static inline pgoff_t swp_offset(swp_entry_t entry)
return entry.val & SWP_OFFSET_MASK;
}

-#ifdef CONFIG_MMU
/* check whether a pte points to a swap entry */
static inline int is_swap_pte(pte_t pte)
{
return !pte_none(pte) && !pte_present(pte);
}
-#endif

/*
* Convert the arch-dependent pte representation of a swp_entry_t into an
@@ -375,4 +375,5 @@ static inline int non_swap_entry(swp_entry_t entry)
}
#endif

+#endif /* CONFIG_MMU */
#endif /* _LINUX_SWAPOPS_H */
--
2.20.1

2019-04-23 16:34:08

by Christoph Hellwig

[permalink] [raw]
Subject: [PATCH 1/2] mm: provide a print_vma_addr stub for !CONFIG_MMU

Signed-off-by: Christoph Hellwig <[email protected]>
---
include/linux/mm.h | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 6b10c21630f5..969185079ae4 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2676,7 +2676,13 @@ extern int randomize_va_space;
#endif

const char * arch_vma_name(struct vm_area_struct *vma);
+#ifdef CONFIG_MMU
void print_vma_addr(char *prefix, unsigned long rip);
+#else
+static inline void print_vma_addr(char *prefix, unsigned long rip)
+{
+}
+#endif

void *sparse_buffer_alloc(unsigned long size);
struct page *sparse_mem_map_populate(unsigned long pnum, int nid,
--
2.20.1

2019-04-29 11:58:37

by Christoph Hellwig

[permalink] [raw]
Subject: Re: two small nommu cleanups

Any comments? It would be nice to get this in for this merge window
to make my life simpler with the RISC-V tree next merge window..

On Tue, Apr 23, 2019 at 06:30:57PM +0200, Christoph Hellwig wrote:
> Hi all,
>
> these two patches avoid writing some boilerplate code for the upcoming
> RISC-V nommu support, and might also help to clean up existing nommu
> support in other architectures down the road.
---end quoted text---

2019-04-29 23:26:24

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: two small nommu cleanups

On Mon, 29 Apr 2019 04:55:26 PDT (-0700), Christoph Hellwig wrote:
> Any comments? It would be nice to get this in for this merge window
> to make my life simpler with the RISC-V tree next merge window..
>
> On Tue, Apr 23, 2019 at 06:30:57PM +0200, Christoph Hellwig wrote:
>> Hi all,
>>
>> these two patches avoid writing some boilerplate code for the upcoming
>> RISC-V nommu support, and might also help to clean up existing nommu
>> support in other architectures down the road.
> ---end quoted text---

I don't actually see any patches, can you point me to something?