RFC for VKERNEL 'external' shutdown

Matthew Dillon dillon at apollo.backplane.com
Sun Apr 8 18:07:42 PDT 2007


:Hello All,
:
:I'll probably start working on a little patch soon to enable 'clean'
:VKERNEL shutdown from the host system via some simple mechanism such as
:a signal handler.
:
:Before I dig too deeply, a couple questions:
:
:1) does this sound useful?

    Yes, good idea.

:2) any 'gotchas' I should know about ?
:
:   (e.g. VMSPACE / strange signal interaction)

    No, it's a sound idea.  The virtual kernel will get the signal.
    It's probably a good idea to make it a mailbox signal on the
    virtual kernel side of things rather then use a signal handler,
    though, just like the other signals.

:3) thoughts on best implementation?
:
:   I'm thinking the easiest and most 'real-system-like' would be to
:   pass the same signals mentioned in init(8) directly to the in-VKERNEL
:   init, which would "just work" (TM) & make things most consistant
:   with a 'real system', although making TERM do a full shutdown
:   might better suited to the vkernel environment (so all the
:   vkernel systems don't need to fsck on boot when the host does
:   a shutdown and inadvertently kills them)
:
:Thanks in advance,
:
:- Chris

    TERM is good.  It's disabled in the vkernel console code at the
    moment but could be set up in a manner similar to how SIGIO is
    set up in the kqueue code.

    See /usr/src/sys/platform/vkernel/platform/{console.c,kqueue.c}. 

    The code that checks the mailbox is in kqueue.c as well.  
    To discern between the SIGIO mailbox and the TERM mailbox
    you probably need to direct the TERM signal to a different
    mailbox address and have the kqueue code check both locations.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Kernel mailing list