[Info-vax] Reloading device drivers on x86-64 VMS

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Sun Mar 8 09:17:23 EDT 2015


On 2015-03-08 11:37:28 +0000, Simon Clubley said:

> On 2015-03-07, Bob Gezelter <gezelter at rlgsc.com> wrote:
>> 
>> I agree with Simon and Paul, with the limitation that the capability is not
>> generic or guaranteed, as noted by Hoff.
>> 
>> In doing extensive driver-level work on RSX, the ability to quiesce and
>> reload a driver without a reboot was vital to achieving progress. It always had
>> the limitation that you needed a quiescent device, the data structures were
>> compatible, and there was always the degree of risk that a crash could ensue.
>> That said, it was extremely helpful at speeding progress.
>> 
> 
> On Linux it's slightly different.
> ...

The initial work in the port is inherently going to involve drivers 
that are rather sketchy, and quite possibly initially depending on some 
VM-based drivers to avoid dealing with hardware.  The initial work in 
the port also has the problem that the environment — beyond the generic 
limitations around the boot-time driver environment — is very limited.  
Put another way, there's a whole lot of scaffolding inherent in the 
port, so I wouldn't expect any great effort to add reloadable drivers 
within the context of the initial port.

Further along in the porting sequence and once the core device drivers 
are more-or-less working, forward progress — even with crashes — can 
involve multiple boxes and multiple VM guests.   Earlier OpenVMS ports 
didn't have all that much hardware available and for various good 
reasons, and the ports used emulation (Alpha) or what were then 
third-party boxes (Itanium), and cross-tools to allow a whole lot of 
the work to be conducted in a more stable environment.   Did I mention 
a whole lot of scaffolding?  In this more recent era, x86-64 boxes are 
much cheaper and far more ubiquitous, and there are widely available 
and cheap virtual machines available for and stable on the target 
architecture.  Put another way, having a dozen "boxes" on your desktop 
is No Big Deal in this era.   What does this mean for the port?  You 
can run a whole herd of test servers.  Crash one, move on to the next 
server in the pool while the earlier boxes are rebooting.

But yes, it'd be very nice to have the ability to unload and reload drivers.

The differences in the current environment also tie back into some 
weaknesses and omissions in OpenVMS.   With OpenVMS, you actually have 
to name the box when configuring the networking, and that's something 
you'd expect with modern desktops and laptops.   But not with modern 
servers, as those will usually name themselves — something VMS doesn't 
do — and acquire a DHCP address — something that VMS isn't all that 
good at, or be named and addressed en-mass using remote management 
software.   Yes, the OpenVMS distros can half-bake a DHCP configuration 
and connect, but the standard install (and which is preferably the same 
as the FIS kit, as mentioned earlier) and the rest could really use the 
capability to install and boot and allow a remote administrator or 
remote software to finish the install.   OpenVMS just isn't that good 
at being part of a herd, either; of being an 
individually-inconsequential box that can be reloaded and restarted 
either individually or en-mass.  No support for ZeroConf/Bonjour or 
what HP is using for their Helion[1] / OpenStack Neutron / OpenFlow 
management.

Having the ability to unload and reload drivers presages the ability to 
dynamically change other parts of the kernel, too.  Which leads to 
discussions of — yes, and "on Linux it's slightly different" here, too 
— Ksplice-style hot-patching; to the ability to upgrade at least some 
executive components without rebooting.  That'd remove some of my 
grumbling about uptime being a measure of server insecurity and risk, 
too.  But again, with a gazillion cheap boxes and applications — 
OpenVMS clusters — that can and should operate across multiple boxes, 
rebooting is easy and only getting easier, so is unloading and 
reloading drivers or execlets something that customers can and will 
have?  Are we solving last-decade problems when OpenVMS really needs to 
look at next-decade requirements?

This is not to imply that I wouldn't like these unload and hot-patch 
capabilities, but with hopefully-sane license prices and hopefully-sane 
cluster license prices, having herds of OpenVMS boxes is feasible, can 
and should get easier to deal with, and this then leads to some very 
different application designs going forward, and existing applications 
that (slowly) migrate into these newer computing environments.  How 
many OpenVMS project proposals got nixed over the server prices and 
particularly the cluster and HBVS and MCOE license prices, and ended up 
half-baking some compromises into their design or their 
disaster-tolerance and recovery plans, or punting on OpenVMS entirely 
and using Linux, after all?

Remember too that aiming future OS work at what we have now is a 
strategy that will generally fail for VSI.  They have to aim for what 
are the then-current features and capabilities when they can deliver 
the changes.  Not what is available now.  the whole computing market 
moves forward, and engineering any new hardware or software product 
release takes time, even if VSI moves toward continuous deployment[2] 
to get the changes out to their customers more quickly.  VSI certainly 
knows this — though competitive operating system development is the 
sort of project where you can definitely plow through a near-unlimited 
budget, even presuming you could even manage and test all of what a 
large budget would allow...  In short, how different will computing and 
servers be in ~2018, or whenever it is that we see the x86-64 port?  
Mobile computing completely exploded in ~six years, and Microsoft went 
from being centrally relevant to client computing, to being a small 
percentage of all client devices, after all.

————
[1] The HP SDS and SDN efforts are just the very tip of software-based 
configuration and management 
<http://h30507.www3.hp.com/t5/Storage-Insiders/Is-software-defined-storage-right-for-you/ba-p/169516> 
<http://h17007.www1.hp.com/us/en/networking/solutions/technology/sdn/index.aspx> 

[2] Semi-unrelated: HP continuous deployment 
<http://blog.matthewskelton.net/2015/03/06/hp-is-trying-to-patent-continuous-delivery-here-is-how-you-can-help-block-this-madness/> 



-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list