On 02/12/14 at 04:39pm, Vivek Goyal wrote:
On Wed, Feb 12, 2014 at 04:35:55PM -0500, Don Zickus wrote:
> On Wed, Feb 12, 2014 at 04:15:13PM -0500, Vivek Goyal wrote:
> > On Thu, Jan 23, 2014 at 02:09:46PM +0800, Baoquan He wrote:
> > > When watchdog is enabled in 1st kernel, then crash dump in kdump
> > > kernel will be interrupted if watchdog is timeout. Since some
> > > wdt drivers can stop the watchdog when its driver is loaded,
> > > e.g iTCO_wdt, this can benefit crash dump.
> > >
> > > Add watchdog driver which is active in system to initramfs, its
> > > loading can stop watchdog.
> > >
> > > For now, put this adding in 99kdumpbase.
> > >
> > > Signed-off-by: Baoquan He <bhe(a)redhat.com>
> > > ---
> > > dracut-module-setup.sh | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
> > > index c013430..d1ba83e 100755
> > > --- a/dracut-module-setup.sh
> > > +++ b/dracut-module-setup.sh
> > > @@ -418,3 +418,11 @@ install() {
> > > # at some point of time.
> > > kdump_check_iscsi_targets
> > > }
> > > +
> > > +installkernel() {
> > > + wdt=$(lsmod|cut -f1 -d' '|grep "wdt$")
> > > + if [ -n "$wdt" ]; then
> > > + instmods $wdt
> > > + [ "$wdt" = "iTCO_wdt" ] && instmods
lpc_ich
> > > + fi
> > > +}
> >
> > Hi Bao,
> >
> > This patch looks good to me.
> >
> > Acked-by: Vivek Goyal <vgoyal(a)redhat.com>
> >
> > I am also CCing Don Zickus.
> >
> > I think driver inclusion in initramfs is is first good step towards solving
> > watchdog related issues. Next step will be to setup appropriate timeout
> > values and setup systemd right kick intervals and make sure kicking starts
> > again in second kernel.
> >
> > I am curious what is lpc_ich? If this is a dependeny, shouldn't module
> > express it and it should automatically be pulled in by dracut.
>
> No. lpc_ich attaches to the hardware and creates platform devices based
> on what intel chipset is found. So if the intel chipset has a iTCO
> watchdog, then that device is virtually created on the platform bus, the
> bus probe routine discovers it and sends a message to udev to load that
> module.
>
> Not quite an explicit dependency. And from the iTCO perspective, I think
> it can load on older intel chipsets without an lcp_ich driver. So again,
> not a dependency you can really rely on.
So who is supposed to pull in lpc_ich? Does dracut by default not inclue
lpc_ich driver if need be?
dracut use modprobe with option "--show-depends" to list all depends of
one kernel module. That option relies on
/lib/module/{kernel-release}/modules.dep. In rhel6 we directly check it
in this file.
However iTCO_wdt doesn't have depends on lpc_ich in
/lib/module/{kernel-release}/modules.dep though it truly depends on
lpc_ich on implementation. Obviously dracut can't do anything on this.
iTCO_wdt is special and unique here, handling it specifically is needed.
Baoquan
Thanks
Thanks
Vivek