Message ID | 1242338026.2554.44.camel@localhost.localdomain (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Lucas Meneghel Rodrigues wrote: > In certain situations, trying to do a rmmod on the kvm modules might > generate errors, as there is a chain of dependencies involved. Instead, > let's use modprobe -r, as it handles dependencies. > > Signed-off-by: Lucas Meneghel Rodrigues <mrodrigu@redhat.com> > > diff --git a/client/tests/kvm_runtest_2/kvm_install.py b/client/tests/kvm_runtes > index dbf8401..c27c6c7 100755 > --- a/client/tests/kvm_runtest_2/kvm_install.py > +++ b/client/tests/kvm_runtest_2/kvm_install.py > @@ -192,9 +192,9 @@ def __load_kvm_modules(): > #utils.system("pkill qemu 1>/dev/null 2>&1", ignore_status=True) > utils.system("pkill qemu", ignore_status=True) > #if utils.system("grep kvm_%s /proc/modules 1>/dev/null" % vendor, ignore_s > - utils.system("/sbin/rmmod kvm_%s" % vendor, ignore_status=True) > + utils.system("/sbin/modprobe -r kvm_%s" % vendor, ignore_status=True) > #if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) > - utils.system("/sbin/rmmod kvm", ignore_status=True) > + utils.system("/sbin/modprobe -r kvm", ignore_status=True) > > if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) = > message = "Failed to remove old KVM modules" > > In normal situations, this works perfectly fine. It also suppresses the output to stderr if a module is not already loaded on the machine. Errors are are still encountered, however, if another module is installed that depends on one of the modules kvm_install is trying to remove. In my environment, I have a module, ksm, which depends on kvm being loaded. If I modprobe -r kvm, them it will fail saying "Module kvm is in use". Overall, this is a minimal impact change that doesn't cause any problems, but it doesn't seem to address the initial problem of having other modules that depend on one of the kvm modules. Mike -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Mike Burns wrote: > Lucas Meneghel Rodrigues wrote: > >> In certain situations, trying to do a rmmod on the kvm modules might >> generate errors, as there is a chain of dependencies involved. Instead, >> let's use modprobe -r, as it handles dependencies. >> >> Signed-off-by: Lucas Meneghel Rodrigues <mrodrigu@redhat.com> >> >> diff --git a/client/tests/kvm_runtest_2/kvm_install.py b/client/tests/kvm_runtes >> index dbf8401..c27c6c7 100755 >> --- a/client/tests/kvm_runtest_2/kvm_install.py >> +++ b/client/tests/kvm_runtest_2/kvm_install.py >> @@ -192,9 +192,9 @@ def __load_kvm_modules(): >> #utils.system("pkill qemu 1>/dev/null 2>&1", ignore_status=True) >> utils.system("pkill qemu", ignore_status=True) >> #if utils.system("grep kvm_%s /proc/modules 1>/dev/null" % vendor, ignore_s >> - utils.system("/sbin/rmmod kvm_%s" % vendor, ignore_status=True) >> + utils.system("/sbin/modprobe -r kvm_%s" % vendor, ignore_status=True) >> #if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) >> - utils.system("/sbin/rmmod kvm", ignore_status=True) >> + utils.system("/sbin/modprobe -r kvm", ignore_status=True) >> >> if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) = >> message = "Failed to remove old KVM modules" >> >> >> > In normal situations, this works perfectly fine. It also suppresses the > output to stderr if a module is not already loaded on the machine. > Errors are are still encountered, however, if another module is > installed that depends on one of the modules kvm_install is trying to > remove. In my environment, I have a module, ksm, which depends on kvm > being loaded. If I modprobe -r kvm, them it will fail saying "Module > kvm is in use". Overall, this is a minimal impact change that doesn't > cause any problems, but it doesn't seem to address the initial problem > of having other modules that depend on one of the kvm modules. > Ignoring status is a recipe for disaster. Instead we should check if the modules are loaded and only unload then (and fail if we can't).
diff --git a/client/tests/kvm_runtest_2/kvm_install.py b/client/tests/kvm_runtes index dbf8401..c27c6c7 100755 --- a/client/tests/kvm_runtest_2/kvm_install.py +++ b/client/tests/kvm_runtest_2/kvm_install.py @@ -192,9 +192,9 @@ def __load_kvm_modules(): #utils.system("pkill qemu 1>/dev/null 2>&1", ignore_status=True) utils.system("pkill qemu", ignore_status=True) #if utils.system("grep kvm_%s /proc/modules 1>/dev/null" % vendor, ignore_s - utils.system("/sbin/rmmod kvm_%s" % vendor, ignore_status=True) + utils.system("/sbin/modprobe -r kvm_%s" % vendor, ignore_status=True) #if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) - utils.system("/sbin/rmmod kvm", ignore_status=True) + utils.system("/sbin/modprobe -r kvm", ignore_status=True) if utils.system("grep kvm /proc/modules 1>/dev/null", ignore_status=True) = message = "Failed to remove old KVM modules"
In certain situations, trying to do a rmmod on the kvm modules might generate errors, as there is a chain of dependencies involved. Instead, let's use modprobe -r, as it handles dependencies. Signed-off-by: Lucas Meneghel Rodrigues <mrodrigu@redhat.com>