From: Rolf Eike Beer <eike-hotplug@sf-tec.de>
To: Alex Chiang <achiang@hp.com>
Cc: pcihpd-discuss@lists.sourceforge.net, gregkh@suse.de,
kristen.c.accardi@intel.com, lenb@kernel.org, matthew@wil.cx,
rick.jones2@hp.com, linux-kernel@vger.kernel.org,
linux-pci@atrey.karlin.mff.cuni.cz, linux-acpi@vger.kernel.org
Subject: Re: [Pcihpd-discuss] [PATCH 2/5] Construct one fakephp slot per pci slot
Date: Wed, 14 Nov 2007 15:49:42 +0100 [thread overview]
Message-ID: <200711141549.50433.eike-hotplug@sf-tec.de> (raw)
In-Reply-To: <20071114141755.GA7523@ldl.fc.hp.com>
[-- Attachment #1: Type: text/plain, Size: 2134 bytes --]
Am Mittwoch, 14. November 2007 schrieb Alex Chiang:
> Hi Eike,
>
> * Rolf Eike Beer <eike-hotplug@sf-tec.de>:
> > Alex Chiang wrote:
> > > --- a/drivers/pci/hotplug/fakephp.c
> > > +++ b/drivers/pci/hotplug/fakephp.c
> > > @@ -93,6 +93,7 @@ static int add_slot(struct pci_dev *dev)
> > > struct dummy_slot *dslot;
> > > struct hotplug_slot *slot;
> > > int retval = -ENOMEM;
> > > + static int count = 1;
> > >
> > > slot = kzalloc(sizeof(struct hotplug_slot), GFP_KERNEL);
> > > if (!slot)
> > > @@ -106,7 +107,8 @@ static int add_slot(struct pci_dev *dev)
> > > slot->info->max_bus_speed = PCI_SPEED_UNKNOWN;
> > > slot->info->cur_bus_speed = PCI_SPEED_UNKNOWN;
> > >
> > > - slot->name = &dev->dev.bus_id[0];
> > > + slot->name = kmalloc(8, GFP_KERNEL);
> > > + sprintf(slot->name, "fake%d", count++);
> > > dbg("slot->name = %s\n", slot->name);
> > >
> > > dslot = kmalloc(sizeof(struct dummy_slot), GFP_KERNEL);
> >
> > This is ugly. Please do it the way we already do e.g. for
> > acpiphp: add a char[8] to "struct dummy_slot" and just
> > reference that here.
>
> I took at look at the code in acpiphp you're talking about, and
> I'm not sure why you think the above is "ugly". We're talking
> about a runtime vs compile time storage for the name, and doing a
> kmalloc/sprintf is a pretty standard idiom.
>
> BTW, I did incorporate both Linas' and Willy's comments, by
> changing the kmalloc size to an explicit 32, and using snprintf
> instead.
>
> In any case, for your particular comment, I think I'm going to
> leave it alone for now, and let Greg weigh in with the final
> recommendation.
Because we have another allocation of very small size for every slot here.
struct dummy_slot has a size of 4 pointers, that's 16 byte for 32 bit
architectures. Putting 8 byte of additional storage here would save a
complete allocation on 32 bit platforms. For 64 bit platforms the memory
usage is the same but we do less allocations (i.e. less points to fail) and
less memory fragmentation.
Btw: your code lacks a check if kmalloc() returns NULL.
Eike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 194 bytes --]
next prev parent reply other threads:[~2007-11-14 14:50 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-13 0:08 [PATCH 0/5][RFC] Physical PCI slot objects Alex Chiang
2007-11-13 0:12 ` [PATCH 1/5] Remove path attribute from sgi_hotplug Alex Chiang
2007-11-13 0:13 ` [PATCH 2/5] Construct one fakephp slot per pci slot Alex Chiang
2007-11-13 19:48 ` Linas Vepstas
2007-11-13 19:52 ` Matthew Wilcox
2007-11-14 12:39 ` [Pcihpd-discuss] " Rolf Eike Beer
2007-11-14 14:17 ` Alex Chiang
2007-11-14 14:49 ` Rolf Eike Beer [this message]
2007-11-14 15:01 ` Alex Chiang
2007-11-13 0:14 ` [PATCH 3/5, RFC] Introduce pci_slot Alex Chiang
2007-11-13 19:56 ` Linas Vepstas
2007-11-13 20:03 ` Matthew Wilcox
2007-11-13 0:17 ` [PATCH 4/5, RFC] ACPI PCI slot detection driver Alex Chiang
2007-11-13 0:18 ` [PATCH 5/5] Add pci_slot_add_hotplug() interface Alex Chiang
2007-11-13 17:01 ` [PATCH 0/5][RFC] Physical PCI slot objects Greg KH
2007-11-13 18:33 ` Matthew Wilcox
2007-11-13 18:51 ` Greg KH
2007-11-13 20:11 ` Matthew Wilcox
2007-11-13 20:19 ` Greg KH
2007-11-13 23:08 ` Gary Hade
2007-11-14 1:37 ` Alex Chiang
2007-11-15 0:40 ` Gary Hade
2007-11-15 17:36 ` Alex Chiang
2007-11-15 23:38 ` Gary Hade
2007-11-14 14:42 ` Alex Chiang
2007-11-14 18:13 ` Gary Hade
2007-11-14 18:36 ` Alex Chiang
2007-11-13 20:36 ` Alex Chiang
2007-11-13 21:30 ` Greg KH
2007-11-13 22:01 ` Bjorn Helgaas
2007-11-13 22:16 ` Greg KH
2007-11-13 21:15 ` Matt Domsch
2007-11-13 21:31 ` Alex Chiang
2007-11-13 21:36 ` Greg KH
2007-11-13 23:14 ` Alex Chiang
2007-11-13 21:32 ` Greg KH
2007-11-13 20:21 ` Alex Chiang
2007-11-13 20:26 ` Greg KH
2007-11-13 22:51 ` Rick Jones
2007-11-13 22:56 ` Greg KH
2007-11-13 23:04 ` Matthew Wilcox
2007-11-13 23:07 ` Greg KH
2007-11-14 6:00 ` Scott Murray
2007-11-13 23:33 ` Kristen Carlson Accardi
2007-11-14 0:10 ` Matthew Wilcox
2007-11-14 9:55 ` Kenji Kaneshige
2007-11-14 18:38 ` Kristen Carlson Accardi
2007-11-13 22:59 ` Kristen Carlson Accardi
2007-11-14 17:37 ` Bjorn Helgaas
2007-11-14 17:53 ` Greg KH
2007-11-14 19:53 ` Alex Chiang
2007-11-14 21:24 ` Alex Chiang
2007-11-14 21:42 ` Alex Chiang
2007-11-14 22:00 ` Greg KH
2007-11-15 20:20 ` Alex Chiang
2007-11-14 17:44 ` Matthew Garrett
2007-11-14 17:51 ` Greg KH
2007-11-14 18:03 ` Matthew Garrett
2007-11-13 20:24 ` Linas Vepstas
2007-11-13 20:59 ` Alex Chiang
2007-11-13 21:41 ` Linas Vepstas
2007-11-13 21:58 ` Matthew Wilcox
2007-11-14 1:07 ` Andi Kleen
2007-11-14 14:17 ` Matthew Wilcox
2007-11-14 14:35 ` Andi Kleen
2007-11-14 15:00 ` Matthew Wilcox
2007-11-14 15:08 ` Andi Kleen
2007-11-14 15:12 ` Matthew Wilcox
2007-11-14 15:20 ` Alex Chiang
2007-11-14 11:43 ` Kenji Kaneshige
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=200711141549.50433.eike-hotplug@sf-tec.de \
--to=eike-hotplug@sf-tec.de \
--cc=achiang@hp.com \
--cc=gregkh@suse.de \
--cc=kristen.c.accardi@intel.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=matthew@wil.cx \
--cc=pcihpd-discuss@lists.sourceforge.net \
--cc=rick.jones2@hp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox