Hi, Pratyush
On 07/14/16 at 10:16am, Pratyush Anand wrote:
Hi Dave,
On 14/07/2016:10:45:13 AM, Dave Young wrote:
> Hi, Pratyush
>
> On 07/13/16 at 01:37pm, Pratyush Anand wrote:
> > If dracut watchdog module is enabled then, it includes kernel watchdog
> > module of active watchdog device in initramfs.
> >
> > kdump.conf has an option to modify dracut_args. So, if an user passes "-a
> > watchdog" in dracut_args then dracut will add kernel watchdog module of
> > active watchdog device in initramfs.
> >
> > Since, kexec-tools always requires to add kernel watchdog module of active
> > watchdog device in initramfs, therefore even when an user does not pass any
> > watchdog option then also kexec-tools adds "-a watchdog" in dracut
args.
> >
> > Therefore, if an user does not want to add kernel watchdog module in
> > initramfs then he/she must pass "-o watchdog" in dracut_args.
> >
> > Signed-off-by: Pratyush Anand <panand(a)redhat.com>
> > ---
> > kdump-lib.sh | 29 +++++++++++++++++++++++++++++
> > mkdumprd | 5 ++++-
> > 2 files changed, 33 insertions(+), 1 deletion(-)
> >
> > diff --git a/kdump-lib.sh b/kdump-lib.sh
> > index 141a5614f1d5..bd1d95ea4bfd 100755
> > --- a/kdump-lib.sh
> > +++ b/kdump-lib.sh
> > @@ -382,3 +382,32 @@ get_ifcfg_filename() {
> >
> > echo -n "${ifcfg_file}"
> > }
> > +
> > +# returns 0 when omission of watchdog module is desired in dracut_args
> > +# returns 1 when addition of watchdog module is desired in dracut_args
> > +# returns 2 when there is no option for watchdog module in dracut_args
> > +check_wdt_mod_omission() {
> > + local dracut_args
> > + local ret=2
> > +
> > + dracut_args=$(grep "^dracut_args" /etc/kdump.conf)
> > + [[ -z $dracut_args ]] && return $ret
> > +
> > + eval set -- $dracut_args
> > + while :; do
> > + [[ -z $1 ]] && break
> > + case $1 in
> > + -o|--omit)
> > + echo $2 | grep -qw "watchdog"
> > + [[ $? == 0 ]] && ret=0
> > + shift;;
> > + -a|--add)
> > + echo $2 | grep -qw "watchdog"
> > + [[ $? == 0 ]] && ret=1
> > + shift;;
> > + esac
> > + shift
> > + done
> > +
> > + return $ret
> > +}
>
> It looks over complex.
>
> I did below test:
>
> dracut -H -f a.img --printsize `uname -r`
> - no watchdog added
Correct
>
> dracut -a watchdog -o watchdog -H -f a.img --printsize `uname -r`
> - no watchdog added
>
Correct
> dracut -o watchdog -a watchdog -H -f a.img --printsize `uname -r`
> - no watchdog added
Hummm, this seem a bit unexpected. I had impression that last option should take
precedence and overwrite previous options. Isn't it a bug in dracut which should
be fixed.
-o has higer priority in dracut, so if one use -o unless force-add the module
will be omitted. I think it is not a bug.
>
> >
> > dracut -a watchdog -H -f a.img --printsize `uname -r`
> > - watchdog being added
>
> Correct
>
> >
> > What ever options if one use -o watchdog in dracut_args the "-a" will
> > be discarded. So how about just add -a watchdog in code if needed and
> > add a code comment that dracut_args options "-o watchdog" will
overwrite
> > the "-a watchdog"? If one specify -a watchdog in dracut_args it does
not
> > matter as well
>
> OK.
> Still most part of the above function check_wdt_mod_omission() will still be
> there with some modification. I will still have to parse dracut_args to look for
> -o|--omit watchdog.
>
> >
> > > diff --git a/mkdumprd b/mkdumprd
> > > index eb0d5e06fac9..f964940555ee 100644
> > > --- a/mkdumprd
> > > +++ b/mkdumprd
> > > @@ -16,8 +16,11 @@ SAVE_PATH=$(grep ^path $conf_file| cut -d' '
-f2)
> > > # strip the duplicated "/"
> > > SAVE_PATH=$(echo $SAVE_PATH | tr -s /)
> > >
> > > +check_wdt_mod_omission
> > > +[[ $? -eq 2 ]] && WDTCFG="-a watchdog"
> > > +
> > > extra_modules=""
> > > -dracut_args=("--hostonly" "-o" "plymouth dash
resume ifcfg")
> > > +dracut_args=("--hostonly" "-o" "plymouth dash
resume ifcfg" $WDTCFG)
> > > OVERRIDE_RESETTABLE=0
> > >
> > > add_dracut_arg() {
> > > --
> > > 2.5.5
> > > _______________________________________________
> > > kexec mailing list
> > > kexec(a)lists.fedoraproject.org
> > >
https://lists.fedoraproject.org/admin/lists/kexec@lists.fedoraproject.org
> >
>
> ~Pratyush
> _______________________________________________
> kexec mailing list
> kexec(a)lists.fedoraproject.org
>
https://lists.fedoraproject.org/admin/lists/kexec@lists.fedoraproject.org