From: Toshi Kani <toshi.kani@hpe.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Dan Williams <dan.j.williams@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-arch@vger.kernel.org, Linux MM <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH 01/11] resource: Add System RAM resource type
Date: Tue, 22 Dec 2015 13:04:32 -0700 [thread overview]
Message-ID: <1450814672.10450.83.camel@hpe.com> (raw)
In-Reply-To: <20151222113422.GE3728@pd.tnic>
On Tue, 2015-12-22 at 12:34 +0100, Borislav Petkov wrote:
> On Wed, Dec 16, 2015 at 02:52:38PM -0700, Toshi Kani wrote:
> > This scheme may have a problem, though. For instance, when someone
> > writes a loadable module that searches for "foo", but the "foo" entry
> > may be initialized in a distro kernel/driver that cannot be modified.
> > Since this search is only necessary to obtain a range initialized by
> > other module, this scenario is likely to happen. We no longer have
> > ability to search for a new entry unless we modify the code that
> > initializes the entry first.
>
> Since when do we pay attention to out-of-tree modules which cannot be
> changed?
The above example referred the case with distros, not with the upstream.
That is, one writes a new loadable module and makes it available in the
upstream. Then s/he makes it work on a distro used by the customers, but
may or may not be able to change the distro kernel/drivers used by the
customers.
> Regardless, we don't necessarily need to change the callers - we could
> add new ones of the form walk_iomem_resource_by_type() or whatever its
> name is going to be which uses the ->type attribute of the resource and
> phase out the old ones slowly. New code will call the better interfaces,
> we should probably even add a checkpatch rule to check for that.
I agree that we can add new interfaces with the type check. This 'type'
may need some clarification since it is an assigned type, which is
different from I/O resource type. That is, "System RAM" is an I/O resource
type (i.e. IORESOURCE_SYSTEM_RAM), but "Crash kernel" is an assigned type
to a particular range of System RAM. A range may be associated with
multiple names, so as multiple assigned types. For lack of a better idea,
I may call it 'assign_type'. I am open for a better name.
> > Even if we avoid strcmp() with @name in the kernel, user applications
> > will continue to use @name since that is the only type available in
> > /proc/iomem. For instance, kexec has its own search function with a
> > string name.
>
> See above.
>
> > When a new commonly-used search name comes up, we can define it as a
> > new extended I/O resource type similar to IORESOURCE_SYSTEM_RAM. For
> > the current remaining cases, i.e. crash, kexec, and einj, they have no
> > impact to performance. Leaving these special cases aside will keep the
> > ability to search for any entry without changing the kernel, and save
> > some memory space from adding the new 'type'.
>
> Again, we can leave the old interfaces at peace but going forward, we
> should make the searching for resources saner and stop using silly
> strings.
OK, I will try to convert the existing callers with the new interfaces.
Thanks,
-Toshi
WARNING: multiple messages have this Message-ID (diff)
From: Toshi Kani <toshi.kani@hpe.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Dan Williams <dan.j.williams@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-arch@vger.kernel.org, Linux MM <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH 01/11] resource: Add System RAM resource type
Date: Tue, 22 Dec 2015 13:04:32 -0700 [thread overview]
Message-ID: <1450814672.10450.83.camel@hpe.com> (raw)
In-Reply-To: <20151222113422.GE3728@pd.tnic>
On Tue, 2015-12-22 at 12:34 +0100, Borislav Petkov wrote:
> On Wed, Dec 16, 2015 at 02:52:38PM -0700, Toshi Kani wrote:
> > This scheme may have a problem, though. For instance, when someone
> > writes a loadable module that searches for "foo", but the "foo" entry
> > may be initialized in a distro kernel/driver that cannot be modified.
> > Since this search is only necessary to obtain a range initialized by
> > other module, this scenario is likely to happen. We no longer have
> > ability to search for a new entry unless we modify the code that
> > initializes the entry first.
>
> Since when do we pay attention to out-of-tree modules which cannot be
> changed?
The above example referred the case with distros, not with the upstream.
That is, one writes a new loadable module and makes it available in the
upstream. Then s/he makes it work on a distro used by the customers, but
may or may not be able to change the distro kernel/drivers used by the
customers.
> Regardless, we don't necessarily need to change the callers - we could
> add new ones of the form walk_iomem_resource_by_type() or whatever its
> name is going to be which uses the ->type attribute of the resource and
> phase out the old ones slowly. New code will call the better interfaces,
> we should probably even add a checkpatch rule to check for that.
I agree that we can add new interfaces with the type check. This 'type'
may need some clarification since it is an assigned type, which is
different from I/O resource type. That is, "System RAM" is an I/O resource
type (i.e. IORESOURCE_SYSTEM_RAM), but "Crash kernel" is an assigned type
to a particular range of System RAM. A range may be associated with
multiple names, so as multiple assigned types. For lack of a better idea,
I may call it 'assign_type'. I am open for a better name.
> > Even if we avoid strcmp() with @name in the kernel, user applications
> > will continue to use @name since that is the only type available in
> > /proc/iomem. For instance, kexec has its own search function with a
> > string name.
>
> See above.
>
> > When a new commonly-used search name comes up, we can define it as a
> > new extended I/O resource type similar to IORESOURCE_SYSTEM_RAM. For
> > the current remaining cases, i.e. crash, kexec, and einj, they have no
> > impact to performance. Leaving these special cases aside will keep the
> > ability to search for any entry without changing the kernel, and save
> > some memory space from adding the new 'type'.
>
> Again, we can leave the old interfaces at peace but going forward, we
> should make the searching for resources saner and stop using silly
> strings.
OK, I will try to convert the existing callers with the new interfaces.
Thanks,
-Toshi
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2015-12-22 20:04 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-14 23:37 [PATCH 01/11] resource: Add System RAM resource type Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 02/11] resource: make resource flags handled properly Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 03/11] x86/e820: Set IORESOURCE_SYSTEM_RAM to System RAM Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 04/11] arch: " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 05/11] xen: " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 06/11] kexec: " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 07/11] memory-hotplug: " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 08/11] memremap: Change region_intersects() to use System RAM type Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 09/11] resource: Change walk_system_ram " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` [PATCH 10/11] arm/samsung: Change s3c_pm_run_res() " Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-15 0:19 ` Krzysztof Kozlowski
2015-12-15 0:19 ` Krzysztof Kozlowski
2015-12-14 23:37 ` [PATCH 11/11] ACPI/EINJ: Allow memory error injection to NVDIMM Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-14 23:37 ` Toshi Kani
2015-12-16 12:26 ` [PATCH 01/11] resource: Add System RAM resource type Borislav Petkov
2015-12-16 12:26 ` Borislav Petkov
2015-12-16 15:44 ` Toshi Kani
2015-12-16 15:44 ` Toshi Kani
2015-12-16 15:49 ` Borislav Petkov
2015-12-16 15:49 ` Borislav Petkov
2015-12-16 16:35 ` Toshi Kani
2015-12-16 16:35 ` Toshi Kani
2015-12-16 17:45 ` Borislav Petkov
2015-12-16 17:45 ` Borislav Petkov
2015-12-16 17:52 ` Dan Williams
2015-12-16 17:52 ` Dan Williams
2015-12-16 18:17 ` Borislav Petkov
2015-12-16 18:17 ` Borislav Petkov
2015-12-16 18:57 ` Dan Williams
2015-12-16 18:57 ` Dan Williams
2015-12-16 19:16 ` Borislav Petkov
2015-12-16 19:16 ` Borislav Petkov
2015-12-16 21:52 ` Toshi Kani
2015-12-16 21:52 ` Toshi Kani
2015-12-22 11:34 ` Borislav Petkov
2015-12-22 11:34 ` Borislav Petkov
2015-12-22 20:04 ` Toshi Kani [this message]
2015-12-22 20:04 ` Toshi Kani
2015-12-23 14:23 ` Borislav Petkov
2015-12-23 14:23 ` Borislav Petkov
2015-12-24 2:23 ` Toshi Kani
2015-12-24 2:23 ` Toshi Kani
2015-12-24 17:08 ` Toshi Kani
2015-12-24 17:08 ` Toshi Kani
2015-12-24 19:58 ` Borislav Petkov
2015-12-24 19:58 ` Borislav Petkov
2015-12-24 21:37 ` Toshi Kani
2015-12-24 21:37 ` Toshi Kani
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=1450814672.10450.83.camel@hpe.com \
--to=toshi.kani@hpe.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dan.j.williams@intel.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rafael.j.wysocki@intel.com \
--cc=torvalds@linux-foundation.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.