On Monday, August 28, 2017 03:54:08 PM Maxim Sobolev wrote:
> Author: sobomax
> Date: Mon Aug 28 15:54:07 2017
> New Revision: 322969
> URL: https://svnweb.freebsd.org/changeset/base/322969
> 
> Log:
>   Add ability to label md(4) devices.
>   
>   This feature comes from the fact that we rely memory-backed md(4)
>   in our build process heavily. However, if the build goes haywire
>   the allocated resources (i.e. swap and memory-backed md(4)'s) need
>   to be purged. It is extremely useful to have ability to attach
>   arbitrary labels to each of the virtual disks so that they can
>   be identified and GC'ed if neecessary.
>   
>   MFC after:  4 weeks
>   Differential Revision:      https://reviews.freebsd.org/D10457
> 
> Modified:
>   head/sbin/mdconfig/mdconfig.8
>   head/sbin/mdconfig/mdconfig.c
>   head/sys/dev/md/md.c
>   head/sys/sys/mdioctl.h
> 
> Modified: head/sys/sys/mdioctl.h
> ==============================================================================
> --- head/sys/sys/mdioctl.h    Mon Aug 28 14:49:26 2017        (r322968)
> +++ head/sys/sys/mdioctl.h    Mon Aug 28 15:54:07 2017        (r322969)
> @@ -49,7 +49,7 @@ enum md_types {MD_MALLOC, MD_PRELOAD, MD_VNODE, MD_SWA
>   * Ioctl definitions for memory disk pseudo-device.
>   */
>  
> -#define MDNPAD               97
> +#define MDNPAD               96
>  struct md_ioctl {
>       unsigned        md_version;     /* Structure layout version */
>       unsigned        md_unit;        /* unit number */
> @@ -61,6 +61,7 @@ struct md_ioctl {
>       u_int64_t       md_base;        /* base address */
>       int             md_fwheads;     /* firmware heads */
>       int             md_fwsectors;   /* firmware sectors */
> +     char            *md_label;      /* label of the device */
>       int             md_pad[MDNPAD]; /* padding for future ideas */
>  };

This isn't correct on 64-bit platforms.  MDNPAD needs to be 95 on those
platforms.

It would be really neat if one could use the label more pervasively.  For
example, it would be nice to do something like this:

# mdconfig -a -t malloc -s 16M -L foo
# newfs /dev/md/foo 
# mdconfig -d -L foo

This would mean that labelled memory disks would not create /dev/mdX
entries, but would instead create /dev/md/<label> nodes.  The labels would
also be exclusive (so only one /dev/md/foo can exist at a time).  WDYT?

-- 
John Baldwin
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to