2008-10-19 11:53:26

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] Export tiny shmem_file_setup for DRM-GEM

We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
But caution says still depend on MMU, since !CONFIG_MMU is.. different.

Signed-off-by: Hugh Dickins <[email protected]>
---
I should admit that I've not actually tested this patch,
but can't imagine why it would be a problem: if you gobble
up too much RAM, well, that's just life with tiny-shmem.

I did promise a patch to make read_mapping_page() return -EINVAL instead
of oopsing when the underlying filesystem doesn't support it. But that
was when people were trying to persuade GEM to map files on whatever fs:
I can't now see the point of such a patch while you're known to be on
tmpfs or ramfs, and intending later to use a new interface from Nick.

drivers/gpu/drm/Kconfig | 2 +-
mm/tiny-shmem.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -6,7 +6,7 @@
#
menuconfig DRM
tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
- depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && SHMEM
+ depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
help
Kernel-level support for the Direct Rendering Infrastructure (DRI)
introduced in XFree86 4.0. If you say Y here, you need to select
--- a/mm/tiny-shmem.c
+++ b/mm/tiny-shmem.c
@@ -95,6 +95,7 @@ put_dentry:
put_memory:
return ERR_PTR(error);
}
+EXPORT_SYMBOL_GPL(shmem_file_setup);

/**
* shmem_zero_setup - setup a shared anonymous mapping


2008-10-20 18:04:16

by Matt Mackall

[permalink] [raw]
Subject: Re: [PATCH] Export tiny shmem_file_setup for DRM-GEM

On Sun, 2008-10-19 at 12:52 +0100, Hugh Dickins wrote:
> We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
> swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
> to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
> go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
> But caution says still depend on MMU, since !CONFIG_MMU is.. different.
>
> Signed-off-by: Hugh Dickins <[email protected]>

Acked-by: Matt Mackall <[email protected]>

Hugh, what path do you usually take for upstreaming shmem bits and what
path should I take with my unify patch?

--
Mathematics is the supreme nostalgia of our time.

2008-10-20 18:48:01

by Hugh Dickins

[permalink] [raw]
Subject: Re: [PATCH] Export tiny shmem_file_setup for DRM-GEM

On Mon, 20 Oct 2008, Matt Mackall wrote:
> On Sun, 2008-10-19 at 12:52 +0100, Hugh Dickins wrote:
> > We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
> > swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
> > to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
> > go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
> > But caution says still depend on MMU, since !CONFIG_MMU is.. different.
> >
> > Signed-off-by: Hugh Dickins <[email protected]>
>
> Acked-by: Matt Mackall <[email protected]>

Thanks.

>
> Hugh, what path do you usually take for upstreaming shmem bits and what
> path should I take with my unify patch?

I send them to Andrew (Cc linux-kernel and/or linux-mm, erratic which,
at best depending on what the area of interest is - there's not much
of interest to linux-mm in the case of this unification) to get their
airing in -mm until the next merge window.

You could do that, or were you expecting me to pick up what you had?
We can do it that way too if you prefer: as things stood, I think
you were intending to add a patch to remove that redundant function,
and another to remove CONFIG_TMPFS - but I can do them if you prefer.

Hugh

2008-10-20 19:39:44

by Matt Mackall

[permalink] [raw]
Subject: Re: [PATCH] Export tiny shmem_file_setup for DRM-GEM

On Mon, 2008-10-20 at 19:47 +0100, Hugh Dickins wrote:
> On Mon, 20 Oct 2008, Matt Mackall wrote:
> > On Sun, 2008-10-19 at 12:52 +0100, Hugh Dickins wrote:
> > > We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
> > > swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
> > > to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
> > > go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
> > > But caution says still depend on MMU, since !CONFIG_MMU is.. different.
> > >
> > > Signed-off-by: Hugh Dickins <[email protected]>
> >
> > Acked-by: Matt Mackall <[email protected]>
>
> Thanks.
>
> >
> > Hugh, what path do you usually take for upstreaming shmem bits and what
> > path should I take with my unify patch?
>
> I send them to Andrew (Cc linux-kernel and/or linux-mm, erratic which,
> at best depending on what the area of interest is - there's not much
> of interest to linux-mm in the case of this unification) to get their
> airing in -mm until the next merge window.
>
> You could do that, or were you expecting me to pick up what you had?
> We can do it that way too if you prefer: as things stood, I think
> you were intending to add a patch to remove that redundant function,
> and another to remove CONFIG_TMPFS - but I can do them if you prefer.

Yeah, I've got a few patches here. I'll send them to Andrew, cc:ed to
you and linux-kernel then.

--
Mathematics is the supreme nostalgia of our time.

2008-10-20 20:21:05

by David Airlie

[permalink] [raw]
Subject: Re: [PATCH] Export tiny shmem_file_setup for DRM-GEM

On Sun, 2008-10-19 at 12:52 +0100, Hugh Dickins wrote:
> We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
> swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
> to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
> go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
> But caution says still depend on MMU, since !CONFIG_MMU is.. different.
>
> Signed-off-by: Hugh Dickins <[email protected]>

Acked-by: Dave Airlie <[email protected]>


> ---
> I should admit that I've not actually tested this patch,
> but can't imagine why it would be a problem: if you gobble
> up too much RAM, well, that's just life with tiny-shmem.
>
> I did promise a patch to make read_mapping_page() return -EINVAL instead
> of oopsing when the underlying filesystem doesn't support it. But that
> was when people were trying to persuade GEM to map files on whatever fs:
> I can't now see the point of such a patch while you're known to be on
> tmpfs or ramfs, and intending later to use a new interface from Nick.
>
> drivers/gpu/drm/Kconfig | 2 +-
> mm/tiny-shmem.c | 1 +
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> --- a/drivers/gpu/drm/Kconfig
> +++ b/drivers/gpu/drm/Kconfig
> @@ -6,7 +6,7 @@
> #
> menuconfig DRM
> tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
> - depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && SHMEM
> + depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
> help
> Kernel-level support for the Direct Rendering Infrastructure (DRI)
> introduced in XFree86 4.0. If you say Y here, you need to select
> --- a/mm/tiny-shmem.c
> +++ b/mm/tiny-shmem.c
> @@ -95,6 +95,7 @@ put_dentry:
> put_memory:
> return ERR_PTR(error);
> }
> +EXPORT_SYMBOL_GPL(shmem_file_setup);
>
> /**
> * shmem_zero_setup - setup a shared anonymous mapping

2008-10-20 23:05:49

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] Export tiny shmem_file_setup for DRM-GEM

We're trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without
swap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches
to combine them). I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)
go into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?
But caution says still depend on MMU, since !CONFIG_MMU is.. different.

Signed-off-by: Hugh Dickins <[email protected]>
Acked-by: Matt Mackall <[email protected]>
Acked-by: Dave Airlie <[email protected]>
---

drivers/gpu/drm/Kconfig | 2 +-
mm/tiny-shmem.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -6,7 +6,7 @@
#
menuconfig DRM
tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
- depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && SHMEM
+ depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
help
Kernel-level support for the Direct Rendering Infrastructure (DRI)
introduced in XFree86 4.0. If you say Y here, you need to select
--- a/mm/tiny-shmem.c
+++ b/mm/tiny-shmem.c
@@ -95,6 +95,7 @@ put_dentry:
put_memory:
return ERR_PTR(error);
}
+EXPORT_SYMBOL_GPL(shmem_file_setup);

/**
* shmem_zero_setup - setup a shared anonymous mapping