On 07/26/2017 at 06:33 PM, Baoquan He wrote:
On 07/26/17 at 05:54pm, Xunlei Pang wrote:
On 07/26/2017 at 05:38 PM, Xunlei Pang wrote:
On 07/26/2017 at 04:51 PM, Baoquan He wrote:
On 07/26/17 at 04:12pm, Xunlei Pang wrote:
Currently, systemd uses 90s as the default mount unit timeout, in some cases, it's not enough and results in mount timeout further results in kdump dumping failure, but the device can actually be ready after a while. We've met several such issues.
So, we add a "x-systemd.device-timeout=600"(600s should be long enough) as the default timeout to the mount options if there is no "x-systemd.device-timeout=X" specified. It can be overridden by /etc/fstab mount options, so that users can specify other timeout values if they want to.
Note: this is different from rd.timeout which was introduced by dracut initqueue.
So what if add rd.timeout=xxx meantime?
If the device is not added into initqueue, it doesn't matter. For example, multipath device, there is no wait_for_dev() call for it.
As for devices like lvm volumes, the default dracut rd.timeout will happen before systemd mount after this patch, I can't see any problem here currently.
Maybe we can also define kdump's default value of rd.retry and rd.timeout, anyway I think that should be a different issue from this patch tries to solve.
Kdump is thin version of normal kernel, should need less time than normal kernel. So if normal kernel works, then no reason kdump need more time. if more time needed, normal kernel need too.
What you said is a good point, however it is not always the case according to our tests and issues we've met that timeout happened only under kdump.
kdump and normal kdump are a bit different, for example the first(root) mount may be different after the "remove root=X" feature on Fedora. Different boot cmdlines(like nr_cpus=1) might affect the boot process, there will less components under kdump than normal kernel, different hardware status due to hot reboot, etc.
So my point is that kdump mount happens at a different time/stage as that under normal kernel, one notably fact is that normal kernel mount happens after switch-root to the real root fs, while kdump kernel happens at the initramfs stage.
Regards, Xunlei
Just pass by, Dave must has better comment.
systemd mount unit is a different task from dracut initqueue, I think they are running parallelly.
Regards, Xunlei
Signed-off-by: Xunlei Pang xlpang@redhat.com
mkdumprd | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/mkdumprd b/mkdumprd index d3ecbd6..30f8ba6 100644 --- a/mkdumprd +++ b/mkdumprd @@ -104,6 +104,11 @@ to_mount() { _options=$(echo $_options | sed 's/noauto//') _options=${_options/#ro/rw} #mount fs target as rw in 2nd kernel
- # use 600s as default systemd mount timeout if none
- if ! strstr $_options "x-systemd.device-timeout"; then
_options="$_options,x-systemd.device-timeout=600"
- fi
- _mntopts="$_target $_fstype $_options" #for non-nfs _dev converting to use udev persistent name if [ -b "$_source" ]; then
-- 1.8.3.1 _______________________________________________ kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@lists.fedoraproject.org
kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@lists.fedoraproject.org