From: Russell King <rmk@arm.linux.org.uk>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Restore module support.
Date: Fri, 7 Feb 2003 19:50:58 +0000 [thread overview]
Message-ID: <20030207195058.D30927@flint.arm.linux.org.uk> (raw)
In-Reply-To: <DD755978BA8283409FB0087C39132BD1A07C9E@fmsmsx404.fm.intel.com>; from tony.luck@intel.com on Fri, Feb 07, 2003 at 10:43:19AM -0800
On Fri, Feb 07, 2003 at 10:43:19AM -0800, Luck, Tony wrote:
> > (2) has the disadvantage that its touching non-architecture specific
> > code, but this is the option I'd prefer due to the obvious performance
> > advantage. However, I'm afraid that it isn't worth the effort to fix
> > up vmalloc and /proc/kcore. vmalloc fix appears simple, but /proc/kcore
> > has issues (anyone know what KCORE_BASE is all about?)
>
> KCORE_BASE is my fault ... it was an attempt to fix the "modules
> below PAGE_OFFSET" problem for the ia64 port. For a few nanoseconds
> the code just here looked like this:
>
> #if VMALLOC_START < PAGE_OFFSET
> #define KCORE_BASE VMALLOC_START
> #else
> #define KCORE_BASE PAGE_OFFSET
> #endif
Ah, ok. What I'm thinking of is something like the following (untested
and probably improperly thought out patch...):
--- orig/fs/proc/kcore.c Sat Nov 2 18:58:18 2002
+++ linux/fs/proc/kcore.c Fri Feb 7 19:48:35 2003
@@ -99,7 +99,10 @@
}
#else /* CONFIG_KCORE_AOUT */
+#ifndef KCORE_BASE
#define KCORE_BASE PAGE_OFFSET
+#define in_vmlist_region(x) ((x) >= VMALLOC_START && (x) < VMALLOC_END)
+#endif
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
@@ -394,7 +397,7 @@
tsz = buflen;
while (buflen) {
- if ((start >= VMALLOC_START) && (start < VMALLOC_END)) {
+ if (in_vmlist_region(start)) {
char * elf_buf;
struct vm_struct *m;
unsigned long curstart = start;
An architecture could then define KCORE_BASE and in_vmlist_region()
alongside their VMALLOC_START definition if they needed to change
them.
> There was some discussion on a better way to do this, by adding the
> kernel itself to the vmlist, and eliminating all the special case code.
> I took a brief look at this, but realised that there were all sorts
> of ugly race conditions with /proc/kcore if a module is loaded/unloaded
> after some process has read the Elf header.
Well, only root can debug using /proc/kcore, and I'd suggest the best
answer to that problem is "if it hurts, don't do that." I don't think
you should prevent modules from being unloaded just because you have
/proc/kcore open.
--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html
next prev parent reply other threads:[~2003-02-07 19:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-07 18:43 [PATCH] Restore module support Luck, Tony
2003-02-07 19:50 ` Russell King [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-02-07 21:15 Luck, Tony
2003-02-07 8:26 Rusty Russell
2003-02-07 10:05 ` Russell King
2003-02-08 4:32 ` Rusty Russell
2003-02-06 23:49 Adam J. Richter
2003-02-04 8:51 [PATCH] Module alias and device table support Rusty Russell
2003-02-06 23:09 ` [PATCH] Restore module support Roman Zippel
2003-02-06 23:25 ` Greg KH
2003-02-07 0:01 ` Roman Zippel
2003-02-07 4:06 ` Greg KH
2003-02-07 9:39 ` Roman Zippel
2003-02-07 18:01 ` Roman Zippel
2003-02-07 0:10 ` Russell King
2003-02-07 4:53 ` Rusty Russell
2003-02-07 10:03 ` Russell King
2003-02-07 6:12 ` Kai Germaschewski
2003-02-07 9:46 ` Roman Zippel
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=20030207195058.D30927@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=tony.luck@intel.com \
/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.