From: Guenter Roeck <guenter.roeck@ericsson.com>
To: lm-sensors@vger.kernel.org
Subject: Re: [lm-sensors] [PATCHv8 1/1] Hwmon: Merge Pkgtemp with Coretemp
Date: Wed, 18 May 2011 15:48:16 +0000 [thread overview]
Message-ID: <20110518154816.GA11280@ericsson.com> (raw)
In-Reply-To: <1305729702-11126-1-git-send-email-durgadoss.r@intel.com>
On Wed, May 18, 2011 at 11:20:04AM -0400, R, Durgadoss wrote:
> Hi Guenter,
>
> First of All, Thanks for the quick reply.
>
> > > v8:
> > > * Fixed retrieval of phys_proc_id in probe
> > > * Added coretemp_remove_device to handle CPU offlining properly
> >
> > There is no coretemp_remove_device() in the code. You mean
> > coretemp_device_remove(), presumably.
>
> oops.. my bad.. :(
>
> >
> > [ ... ]
> > > +static struct platform_device *coretemp_get_pdev(unsigned int cpu)
> > > +{
> > > + struct pdev_entry *p;
> > > +
> > > + mutex_lock(&pdev_list_mutex);
> > > + list_for_each_entry(p, &pdev_list, list)
> > > + if (p->cpu = cpu) {
> > > + mutex_unlock(&pdev_list_mutex);
> > > + return p->pdev;
> > > + }
> > >
> > I have been wondering about this. In the non-SMP case, can there ever be more
> > than one entry ?
> >
> > If so, you should not need the loop but could just use list_first_entry()
> > instead.
>
> Did not know about the list_first_entry() function..shall use it hereafter..
>
Me not either until about an hour ago ;).
> >
> > [ ... ]
> > > -static void __cpuinit coretemp_device_remove(unsigned int cpu)
> > > +static void coretemp_device_remove(unsigned int cpu)
> > > {
> > > struct pdev_entry *p;
> > > - unsigned int i;
> > >
> > > mutex_lock(&pdev_list_mutex);
> > > list_for_each_entry(p, &pdev_list, list) {
> >
> > I think this should be list_for_each_safe() since you remove p.
> >
> > > + #ifdef CONFIG_SMP
> > > + if (p->phys_proc_id != cpu_data(cpu).phys_proc_id)
> > > + continue;
> > > + #else
> > > if (p->cpu != cpu)
> > > continue;
> > > + #endif
> > >
> > #ifdef at column 0, please.
> >
>
> Didn't know this rule..And checkpatch.pl did not teach me either :)
>
I don't even know if it is a rule, but it is common practive, which is good enough for me
to make it a rule.
Strictly speaking, the rule would be to not have any ifdefs in the code in the first place.
Might be worth exploring if we can get rid of the ifdefs by using a single set of defines
at the top, such as
#ifdef CONFIG_SMP
#define phys_proc_id(cpu) cpu_data(cpu)->phys_proc_id
#define cpu_core_id(cpu) cpu_data(cpu)->cpu_core_id
#else
#define phys_proc_id(cpu) (cpu)
#define cpu_core_id(cpu) (cpu)
#endif
If you also unconditionally declare phys_proc_id and cpu_core_id in struct pdev_entry,
that should enable us to get rid of pretty much all the ifdefs in the code.
Would be great if you could do that now, or we can do it in a subsequent patch.
> > I wonder about the !SMP case. Doesn't that imply that there is only one CPU ?
> > If so, why compare the CPU ID ?
> >
>
> Agree that there will be only one entry..Shall change it accordingly..
>
> > [ ... ]
> > > +{
> > > + int i;
> > > +
> > > + /* Find online cores, except pkgtemp data */
> > > + for (i = MAX_CORE_DATA - 1; i >= 0; --i) {
> >
> > Not that it matters, but starting at 0 and iterating upwards is more common.
> > Is that just personal preference, or do you have a reason ? Just wondering.
> >
>
> Initially I had this code in coretemp_remove. There, the pkgtemp will be
> removed after all its cores are removed if we loop this way.
> Wanted to keep the same code here too..
>
Guess the same question applies there too ;).
> But again as you said, it doesn't matter.. Should I change ??
>
Your call.
> > > + /* If all cores in this pkg are offline, remove the device */
> > > + if (!is_any_core_online(pdata))
> > > + coretemp_device_remove(cpu);
> >
> > Where do you remove the package sensor entry ?
>
> Coretemp_device_remove will call platform_device_unregister,
> Which in turn calls coretemp_remove. This will remove the pkgtemp
> entry and do other cleanups like removing the name attr etc..
>
Ok. Might make sense to add a little explanation.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next prev parent reply other threads:[~2011-05-18 15:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-18 9:10 [lm-sensors] [PATCHv8 1/1] Hwmon: Merge Pkgtemp with Coretemp Durgadoss R
2011-05-18 14:24 ` Guenter Roeck
2011-05-18 15:32 ` R, Durgadoss
2011-05-18 15:48 ` Guenter Roeck [this message]
2011-05-18 16:58 ` R, Durgadoss
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=20110518154816.GA11280@ericsson.com \
--to=guenter.roeck@ericsson.com \
--cc=lm-sensors@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.