All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael Büsch" <m@bues.ch>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: b43-dev <b43-dev@lists.infradead.org>, linux-wireless@vger.kernel.org
Subject: Optimization: keeping pointer all the time, or defining getter?
Date: Wed, 11 May 2011 18:27:45 +0200	[thread overview]
Message-ID: <1305131265.16850.6.camel@maggie> (raw)
In-Reply-To: <BANLkTi=xOtAaxh8Q7Nk84Rwz9jM-6EP1Ww@mail.gmail.com>

On Wed, 2011-05-11 at 18:22 +0200, Rafa? Mi?ecki wrote: 
> I try to abstract bus in b43 driver. For frequently used fields
> solution is obvious:
> At init time I get info from bus-specific stuct and put it in generic field.
> Example: core revision. We often refer to it, I put it in abstraction struct.
> 
> My question: what is the policy for cases with less frequently used fields?
> Example: I need to use "struct device" for registering some low lever stuff.
> 
> I have two solutions:
> 
> 1) Realtime:
> struct device *get_device(...)
> {
> if (dev->bus_type = B43_BUS_SSB)
> return dev->ssbdev->device;
> else if (dev->bus_type = B43_BUS_BCMA)
> return dev->bcmadev->device;
> }
> 
> 2) Init time:
> void b43_ssb_init(struct ssb_device *ssbdev)
> {
> dev->struct = ssbdev->device;
> }
> 
> The first one is slower but we don't keep "struct device" pointer in
> abstraction struct. Situation is opposite for the second one.
> 
> Does anyone care? ;)

Put a struct device pointer into b43_wldev.
The pointer is needed on every DMA transaction several times, so this
seems worth it.

-- 
Greetings Michael.

WARNING: multiple messages have this Message-ID (diff)
From: "Michael Büsch" <m@bues.ch>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: b43-dev <b43-dev@lists.infradead.org>, linux-wireless@vger.kernel.org
Subject: Re: Optimization: keeping pointer all the time, or defining getter?
Date: Wed, 11 May 2011 18:27:45 +0200	[thread overview]
Message-ID: <1305131265.16850.6.camel@maggie> (raw)
In-Reply-To: <BANLkTi=xOtAaxh8Q7Nk84Rwz9jM-6EP1Ww@mail.gmail.com>

On Wed, 2011-05-11 at 18:22 +0200, Rafał Miłecki wrote: 
> I try to abstract bus in b43 driver. For frequently used fields
> solution is obvious:
> At init time I get info from bus-specific stuct and put it in generic field.
> Example: core revision. We often refer to it, I put it in abstraction struct.
> 
> My question: what is the policy for cases with less frequently used fields?
> Example: I need to use "struct device" for registering some low lever stuff.
> 
> I have two solutions:
> 
> 1) Realtime:
> struct device *get_device(...)
> {
> if (dev->bus_type = B43_BUS_SSB)
> return dev->ssbdev->device;
> else if (dev->bus_type = B43_BUS_BCMA)
> return dev->bcmadev->device;
> }
> 
> 2) Init time:
> void b43_ssb_init(struct ssb_device *ssbdev)
> {
> dev->struct = ssbdev->device;
> }
> 
> The first one is slower but we don't keep "struct device" pointer in
> abstraction struct. Situation is opposite for the second one.
> 
> Does anyone care? ;)

Put a struct device pointer into b43_wldev.
The pointer is needed on every DMA transaction several times, so this
seems worth it.

-- 
Greetings Michael.


  reply	other threads:[~2011-05-11 16:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-11 16:22 Optimization: keeping pointer all the time, or defining getter? Rafał Miłecki
2011-05-11 16:22 ` Rafał Miłecki
2011-05-11 16:27 ` Michael Büsch [this message]
2011-05-11 16:27   ` Michael Büsch
2011-05-11 16:34   ` Rafał Miłecki
2011-05-11 16:34     ` Rafał Miłecki
2011-05-11 16:43     ` Michael Büsch
2011-05-11 16:43       ` Michael Büsch

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=1305131265.16850.6.camel@maggie \
    --to=m@bues.ch \
    --cc=b43-dev@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=zajec5@gmail.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.