<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="generator" content="Osso Notes">
    <title></title></head>
<body>
<p>In fact, the main incentive for this patchset is the netapp bug tracked on bugzilla (multipathed root device with a transient no-path situation, and no way to exec a paged prio callout).<br></p>
<p><br></p>
<p>Ben chose to resurrect the ramfs callout cache trick. But I feel much more comfortable with the mem-locked shared objects.<br></p>
<p><br></p>
<p>About your concern for static-only early userspace, I'm confident it is no longer a problem. Guido, from the Debian project, already aknowledged the changeset and did not react to this change. But maybe now he will ...<br></p>
<p><br></p>
<p>Thanks for your input.<br></p>
<p>cvaroqui<br></p>
<p><br></p>
<p>----- Original message -----<br></p>
<p>Hi Christophe and all,<br></p>
<p><br></p>
<p>Sorry for the late reply.<br></p>
<p>I took a quick look at the patch series and got some concerns.<br></p>
<p>Please see below for details.<br></p>
<p><br></p>
<p>On Tue, 15 Apr 2008 19:02:08 +0200, Christophe Varoqui wrote:<br></p>
<p>> please take notice I updated the upstream git tree for the<br></p>
<p>> multipath-tools project. This tree includes lots of code shuffling :<br></p>
<p>><br></p>
<p>> 1) prioritizers as dlopen'ed shared libs (/lib/libmultipath/libprio*.so)<br></p>
<p>> 2) checkers as dlopen'ed shared libs (/lib/libmultipath/libcheck*.so)<br></p>
<p><br></p>
<p>Dynamic loading is a nice feature for out-of-tree prioritizers<br></p>
<p>and checkers.<br></p>
<p>But I think it's better to avoid using dlopen for in-tree<br></p>
<p>prioritizers and checkers.<br></p>
<p>(Or at least provide configuration option to build them as built-in.)<br></p>
<p><br></p>
<p><br></p>
<p>I believe most distros want to use multipath-tools on installer<br></p>
<p>environment and initrd environment for root volume multipathing.<br></p>
<p>However, some distros may not be supporting dynamic loading<br></p>
<p>on such environments, and such distros are using static linked<br></p>
<p>binaries.<br></p>
<p>This change prevents such distros from using root volume multipath,<br></p>
<p>since the change dropped static build capability completely.<br></p>
<p><br></p>
<p>Does the change come from my comment below?<br></p>
<p>(http://marc.info/?l=dm-devel&m=119817423831745&w=2)<br></p>
<p><br></p>
<p>On Thu, 20 Dec 2007 13:10:39 -0500 (EST), Kiyoshi Ueda wrote:<br></p>
<p>> I would like to note that we lost the priority callout feature<br></p>
<p>> completely to fix the stall problem of root multipath.<br></p>
<p>><br></p>
<p>> Although below is just my humble opinion, I guess it was useful<br></p>
<p>> for people who want to use new prioritizers on official distro's<br></p>
<p>> environments until an update package including the prioritizer<br></p>
<p>> is released.<br></p>
<p>> So if such a case often happens, adding other ways to use external<br></p>
<p>> prioritizers (perhaps dynamic loading library module like LVM2)<br></p>
<p>> would be required in the near future.<br></p>
<p><br></p>
<p>If so, I apologize very much for confusing you.<br></p>
<p>What I meant on the comment above was:<br></p>
<p>  o stay all in-tree codes as built-in<br></p>
<p>  o add a new dynamic loading feature for out-of-tree codes<br></p>
<p><br></p>
<p>My exact image is like crash command (http://people.redhat.com/anderson/).<br></p>
<p>It has many built-in sub-commands for kernel core components<br></p>
<p>(e.g. bt, list).  And it has 'extend' sub-command to load a shared<br></p>
<p>library and to add extra sub-commands.<br></p>
<p><br></p>
<p>In multipath-tools, I thought we could specify shared libraries<br></p>
<p>in multipath.conf like below:<br></p>
<p>    defaults {<br></p>
<p>            extention  new_prioritizer1.so<br></p>
<p>            extention  new_prioritizer2.so<br></p>
<p>    }<br></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>Anyway, if all distros support dynamic loading on initrd environment<br></p>
<p>like Fedora, the patch series shouldn't matter.  But I'm not sure.<br></p>
<p>If there are such distros, we should take the approach above or<br></p>
<p>another solution like:<br></p>
<p>  o specify at build time whether in-tree prioritizers/checkers<br></p>
<p>    are built into the binary or built as shared libraries<br></p>
<p>  o they are built as shared libraries by default to minimize<br></p>
<p>    the binary size of multipath/multipathd commands<br></p>
<p><br></p>
<p>Thanks,<br></p>
<p>Kiyoshi Ueda<br></p>
<p><br></p>
<p><br></p>
</body>
</html>