lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 11 Apr 2018 11:22:20 +0800 From: Wei Yang <richard.weiyang@...il.com> To: Baoquan He <bhe@...hat.com> Cc: Rob Herring <robh+dt@...nel.org>, Nicolas Pitre <nico@...aro.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Patrik Jakobsson <patrik.r.jakobsson@...il.com>, David Airlie <airlied@...ux.ie>, "K. Y. Srinivasan" <kys@...rosoft.com>, Haiyang Zhang <haiyangz@...rosoft.com>, Stephen Hemminger <sthemmin@...rosoft.com>, Dmitry Torokhov <dmitry.torokhov@...il.com>, Dan Williams <dan.j.williams@...el.com>, Frank Rowand <frowand.list@...il.com>, Keith Busch <keith.busch@...el.com>, Jonathan Derrick <jonathan.derrick@...el.com>, Lorenzo Pieralisi <lorenzo.pieralisi@....com>, Bjorn Helgaas <bhelgaas@...gle.com>, Thomas Gleixner <tglx@...utronix.de>, Brijesh Singh <brijesh.singh@....com>, Jérôme Glisse <jglisse@...hat.com>, Borislav Petkov <bp@...e.de>, Tom Lendacky <thomas.lendacky@....com>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Yaowei Bai <baiyaowei@...s.chinamobile.com>, Wei Yang <richard.weiyang@...il.com>, devel@...uxdriverproject.org, linux-input@...r.kernel.org, linux-nvdimm@...ts.01.org, devicetree@...r.kernel.org, linux-pci@...r.kernel.org Subject: Re: [PATCH v3 1/3] resource: Use list_head to link resource sibling On Tue, Apr 10, 2018 at 09:44:16PM +0800, Baoquan He wrote: >Hi Rob, > >Thanks a lot for looking into this and involve Nico to this thread! > >On 04/09/18 at 09:49am, Rob Herring wrote: >> +Nico who has been working on tinification of the kernel. >> >> On Mon, Apr 9, 2018 at 4:08 AM, Baoquan He <bhe@...hat.com> wrote: >> > The struct resource uses singly linked list to link siblings. It's not >> > easy to do reverse iteration on sibling list. So replace it with list_head. >> >> Why is reverse iteration needed? > >This is the explanation I made when Andrew helped to review the v1 post: >https://lkml.org/lkml/2018/3/23/78 > >Because we have been using kexec-tools utility to search available >System RAM space for loading kernel/initrd/purgatory from top to down. >That is done in user space by searching /proc/iomem. While later added >kexec_file interface, the searching code happened in kernel, and it >only search System RAM region bottom up, then take an area in that found >RAM region from top to down. We need unify these two interfaces on >behaviour since they are the same on essense from the users' point of >view, though implementation is different. As you know, the singly linked >list implementation of the current resource's sibling linking, makes the >searching from top to down very hard to satisfy people. > >Below is the v1 post, we make an temporary array to copy iomem_resource's >first level of children, then iterate the array reversedly. Andrew >suggested me to try list_head after reviewing. In fact we can optimize >that patch to only copy resource pointer into array, still the way is >ugly. >https://lkml.org/lkml/2018/3/21/952 > >Then Wei pasted a patch he had made as below. He didn't mention if he >also has requirement on reversed iteration of resource. That is an O(n*n) >way, from personal feelings, hard to say if it's bettern than v1 post. >https://lkml.org/lkml/2018/3/24/157 I don't have requirement on reverse iteration of resource structure. My approach is almost the same as current walk_system_ram_res(). Since each resource keeps parent, we could get previous resource by search on res->parent->child. The complexity of a whole iteration is O(N * W / 2), where N is the number of resources in the tree and W is the average number of siblings of each resource. And this approach doesn't need to change current structure. > >That's why I would like to have a try of the list_head linking. > -- Wei Yang Help you, Help me
Powered by blists - more mailing lists