From: Baoquan He <bhe@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Baoquan He <bhe@redhat.com>
Subject: [PATCH v2 0/3] resource: Use list_head to link sibling resource
Date: Sun, 8 Apr 2018 10:47:21 +0800 [thread overview]
Message-ID: <20180408024724.16812-1-bhe@redhat.com> (raw)
This post mainly converts strut resource's sibling list from singly
linked list to doubly linked list, list_head. This is suggested by
Andrew. Since I need a reversed searching on iomem_resource's
IORESOURCE_SYSTEM_RAM children, the old singly linked list way makes
the code in v1 post really ugly.
With this change, we only need one simple list_for_each_entry_reverse()
to do reversed iteration on sibling list. The relevant codes in
kernel/resource.c are more readable since those dazzling pointer
operation codes for singly linked list are replaced.
With the help of list_head, in patch 0002 we can have a very simple
walk_system_ram_res_rev(). And in patch 0003, will use it to search
available system RAM region for kexec_buffer of kexec_file from top to
down, just like we have been doing all along in kexec loading which is
done in kexec-tools utility.
Note:
This patchset passed testing on my kvm guest, x86_64 arch with network
enabling. The thing we need pay attetion to is that a root resource's
child member need be initialized specifically with LIST_HEAD_INIT() if
sttically defined or INIT_LIST_HEAD() for dynamically definition. Here
Just like we do for iomem_resource/ioport_resource, or the change in
get_pci_domain_busn_res().
And there are two places of change I am not very sure. One is in
drivers/hv/vmbus_drv.c, the other is in drivers/pci/host/vmd.c. So will
invite experts on these areas to help review.
v1->v2:
Use list_head instead to link resource siblings. This is suggested by
Andrew.
Rewrite walk_system_ram_res_rev() after list_head is taken to link
resouce siblings.
Baoquan He (3):
resource: Use list_head to link sibling resource
resource: add walk_system_ram_res_rev()
kexec_file: Load kernel at top of system RAM if required
drivers/gpu/drm/gma500/gtt.c | 5 +-
drivers/hv/vmbus_drv.c | 52 +++----
drivers/input/joystick/iforce/iforce-main.c | 4 +-
drivers/nvdimm/e820.c | 2 +-
drivers/nvdimm/namespace_devs.c | 14 +-
drivers/nvdimm/nd.h | 5 +-
drivers/of/address.c | 4 +-
drivers/pci/host/vmd.c | 8 +-
drivers/pci/probe.c | 2 +
drivers/pci/setup-bus.c | 2 +-
include/linux/ioport.h | 7 +-
kernel/kexec_file.c | 2 +
kernel/resource.c | 233 +++++++++++++++++-----------
13 files changed, 196 insertions(+), 144 deletions(-)
--
2.13.6
next reply other threads:[~2018-04-08 2:47 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-08 2:47 Baoquan He [this message]
2018-04-08 2:47 ` [PATCH v2 1/3] resource: Use list_head to link sibling resource Baoquan He
2018-04-08 2:47 ` Baoquan He
2018-04-08 2:47 ` Baoquan He
2018-04-08 2:47 ` Baoquan He
[not found] ` <20180408024724.16812-2-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-08 4:12 ` kbuild test robot
2018-04-08 4:12 ` kbuild test robot
2018-04-08 4:12 ` kbuild test robot
2018-04-08 4:12 ` kbuild test robot
[not found] ` <201804081247.F3eqBMih%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-08 5:55 ` kbuild test robot
2018-04-08 5:55 ` kbuild test robot
2018-04-08 5:55 ` kbuild test robot
2018-04-08 5:55 ` kbuild test robot
[not found] ` <201804081223.lLuGQOqa%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-08 9:09 ` Baoquan He
2018-04-09 9:08 ` [PATCH v3 1/3] resource: Use list_head to link resource sibling Baoquan He
2018-04-09 9:08 ` Baoquan He
2018-04-09 9:08 ` Baoquan He
[not found] ` <20180409090853.GJ19345-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-04-09 14:49 ` Rob Herring
2018-04-09 14:49 ` Rob Herring
2018-04-09 14:49 ` Rob Herring
2018-04-09 16:05 ` Nicolas Pitre
2018-04-09 16:05 ` Nicolas Pitre
2018-04-09 16:05 ` Nicolas Pitre
2018-04-09 16:05 ` Nicolas Pitre
[not found] ` <CAL_Jsq+xxa9ep2LK3H6YWhwrZtc-T73Y84ry6Hs-JJ3XEXoGsw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-10 13:44 ` Baoquan He
2018-04-10 13:44 ` Baoquan He
2018-04-10 13:44 ` Baoquan He
2018-04-10 13:44 ` Baoquan He
2018-04-11 3:22 ` Wei Yang
2018-04-11 3:22 ` Wei Yang
2018-04-11 3:22 ` Wei Yang
2018-04-09 15:38 ` Dan Williams
2018-04-09 15:38 ` Dan Williams
2018-04-09 15:38 ` Dan Williams
[not found] ` <CAPcyv4huU32+oMeoF8-HmmctafZ_uOZN-v85O5M8Ka8pBXP+Lg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-10 2:10 ` Baoquan He
2018-04-10 2:10 ` Baoquan He
2018-04-10 2:10 ` Baoquan He
2018-04-10 2:10 ` Baoquan He
[not found] ` <20180410021043.GC25724-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-04-10 2:34 ` Dan Williams
2018-04-10 2:34 ` Dan Williams
2018-04-10 2:34 ` Dan Williams
2018-04-10 2:34 ` Dan Williams
[not found] ` <CAPcyv4gLrfq87FWP2f9n8YbP-XZ-uxuoc0nZu3LEW_bDxEAH_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-10 2:49 ` Baoquan He
2018-04-10 2:49 ` Baoquan He
2018-04-10 2:49 ` Baoquan He
2018-04-10 2:49 ` Baoquan He
2018-04-08 2:47 ` [PATCH v2 2/3] resource: add walk_system_ram_res_rev() Baoquan He
2018-04-08 2:47 ` [PATCH v2 3/3] kexec_file: Load kernel at top of system RAM if required Baoquan He
2018-04-08 2:47 ` Baoquan He
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=20180408024724.16812-1-bhe@redhat.com \
--to=bhe@redhat.com \
--cc=linux-kernel@vger.kernel.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.