All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerry Hoemann <jerry.hoemann@hpe.com>
To: Marcus Folkesson <marcus.folkesson@gmail.com>
Cc: wim@linux-watchdog.org, linux@roeck-us.net,
	linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org,
	rwright@hpe.com, maurice.a.saldivar@hpe.com
Subject: Re: [PATCH v2 06/11] watchdog/hpwdt: Modify to use watchdog core.
Date: Tue, 13 Feb 2018 14:36:48 -0700	[thread overview]
Message-ID: <20180213213648.GB22295@anatevka.americas.hpqcorp.net> (raw)
In-Reply-To: <20180212090621.GA4513@gmail.com>



Thanks for the review. Comments inline.

On Mon, Feb 12, 2018 at 10:06:21AM +0100, Marcus Folkesson wrote:
> Hi Jerry,
> 
> On Sun, Feb 11, 2018 at 10:21:06PM -0700, Jerry Hoemann wrote:
> > Follow Documentation/watchdog/convert_drivers_to_kernel_api.txt to
> > convert hpwdt from legacy watchdog driver to use the watchdog core.
> > 
> > Removed functions: hpwdt_open, hpwdt_release, hpwdt_write, hpwdt_ioctl
> > Removed data structures: hpwdt_fops, hpwdt_miscdev, watchdog_device
> > Modified functions: hpwdt_start, hpwdt_stop, hpwdt_ping, hpwdt_gettimeleft
> > Added functions: hpwdt_settimeout
> > Added structures: watchdog_device
> > 
> > Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
> 
> I think it would be better to use
>     dev_emerg()
>     dev_crit()
>     dev_alert()
>     dev_err()
>     dev_warn()
>     dev_notice()
> 
> instead of pr_* functions now when we have a device to use.

In general, is there something bad with using pr_debug, etc.,?

When converting the driver over, I had many more debug messages being
printed from locations where I didn't have a valid device handle and
those needed to be done w/ the pr_.* functions.  So, I just uniformally
used pr_.*.


> > -static int hpwdt_time_left(void)
> > +static unsigned int hpwdt_gettimeleft(struct watchdog_device *dev)
> >  {
> >  	return TICKS_TO_SECS(ioread16(hpwdt_timer_reg));
> >  }
> >  
> > +static int hpwdt_settimeout(struct watchdog_device *dev, unsigned int val)
> > +{
> > +	pr_debug("settimeout = %d\n", val);
> 
> dev_dbg()

I think you are proposing I do:

	dev_dbg(dev->parent, "settimeout = %d\n", val);

This raises the issue that I didn't set parent and I believe I should have.


> 
> 
> > +
> > +	soft_margin = dev->timeout = val;
> 
> No need to update soft_margin

I'd made the permission on the module parameters 0444 so that they
would show up in sysfs.  I updated this value so that I could see
current value of timeout in sysfs.  But, as Guenter points out in a
later review, these values are available in under CONFIG_WATCHDOG_SYSFS.
So, I'll remove.


> > +	pr_debug("nmi: ulReason=%d, mynmi=0x%0x\n", ulReason, mynmi);
> 
> dev_dbg()

See above.

> 
> >  	retval = hpwdt_init_nmi_decoding(dev);
> >  	if (retval != 0)
> >  		goto error_init_nmi_decoding;
> >  
> > -	retval = misc_register(&hpwdt_miscdev);
> > +	retval = watchdog_register_device(&hpwdt_dev);
> >  	if (retval < 0) {
> > -		dev_warn(&dev->dev,
> > -			"Unable to register miscdev on minor=%d (err=%d).\n",
> > -			WATCHDOG_MINOR, retval);
> > -		goto error_misc_register;
> > +		dev_warn(&dev->dev, "Unable to register hpe watchdog (err=%d).\n", retval);
> > +		goto error_wd_register;
> > +	}
> > +
> > +	watchdog_set_nowayout(&hpwdt_dev, nowayout);
> > +	if (watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL)) {
> > +		dev_warn(&dev->dev, "Invalid soft_margin: %d. Using default\n", soft_margin);
> > +		soft_margin = DEFAULT_MARGIN;
> >  	}
> 
> In this case watchdog_init_timout() will:
> 1) Check if soft_margin is valid
> 2) if not, keep hpwdt_dev.timout intact (which is already set in
> declaration of hpwdt_dev)
> 
> So we could remove the condition and only keep
> watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL);
> 
> 
> Also, we need to set an invalid initial value for soft_margin to make
> the logic for watchdog_init_timeout work. 
> 
> i.e
> - static unsigned int soft_margin = DEFAULT_MARGIN;	/* in seconds */
> + static unsigned int soft_margin;


I don't see the core printing a warning message if an invalid value
is specified for soft_margin when loading the module.

I don't mind the hpwdt module correcting an out of range parameter, but I
don't think it should do so siliently.


> 
> >  
> >  	dev_info(&dev->dev, "HPE Watchdog Timer Driver: %s"
> >  			", timer margin: %d seconds (nowayout=%d).\n",
> > -			HPWDT_VERSION, soft_margin, nowayout);
> 
> print hpwdt_dev.timeout instead of soft_margin
> 


Will do.



-- 

-----------------------------------------------------------------------------
Jerry Hoemann                  Software Engineer   Hewlett Packard Enterprise
-----------------------------------------------------------------------------

  parent reply	other threads:[~2018-02-13 21:36 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-12  5:21 [PATCH v2 00/11] watchdog/hpwdt: Update driver to use watchdog core Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 01/11] watchdog/hpwdt: Remove legacy NMI sourcing Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 02/11] watchdog/hpwdt: remove include files no longer needed Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 03/11] watchdog/hpwdt: Update nmi_panic message Jerry Hoemann
2018-02-13 17:41   ` Guenter Roeck
2018-02-13 21:59     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 04/11] watchdog/hpwdt: white space changes Jerry Hoemann
2018-02-12  9:35   ` Philippe Ombredanne
2018-02-13 17:44     ` Guenter Roeck
2018-02-12  5:21 ` [PATCH v2 05/11] watchdog/hpwdt: Update Module info Jerry Hoemann
2018-02-13 17:49   ` Guenter Roeck
2018-02-14  0:01     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 06/11] watchdog/hpwdt: Modify to use watchdog core Jerry Hoemann
2018-02-12  9:06   ` Marcus Folkesson
2018-02-13 18:05     ` Guenter Roeck
2018-02-13 21:36     ` Jerry Hoemann [this message]
2018-02-13 21:55       ` Guenter Roeck
2018-02-13 23:54         ` Jerry Hoemann
2018-02-14 20:53     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 07/11] watchdog/hpwdt: Select WATCHDOG_CORE Jerry Hoemann
2018-02-13 18:04   ` Guenter Roeck
2018-02-12  5:21 ` [PATCH v2 08/11] watchdog/hpwdt: Programable Pretimeout NMI Jerry Hoemann
2018-02-12  9:09   ` Marcus Folkesson
2018-02-12  5:21 ` [PATCH v2 09/11] watchdog/hpwdt: condition early return of NMI handler on iLO5 Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 10/11] watchdog/hpwdt: remove allow_kdump module parameter Jerry Hoemann
2018-02-13 18:20   ` Guenter Roeck
2018-02-13 23:10     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 11/11] watchdog/hpwdt: Update driver version Jerry Hoemann
2018-02-13 17:07   ` Guenter Roeck
2018-02-14  0:21     ` Jerry Hoemann

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=20180213213648.GB22295@anatevka.americas.hpqcorp.net \
    --to=jerry.hoemann@hpe.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=marcus.folkesson@gmail.com \
    --cc=maurice.a.saldivar@hpe.com \
    --cc=rwright@hpe.com \
    --cc=wim@linux-watchdog.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.