svn commit: r322969 - in head: sbin/mdconfig sys/dev/md sys/sys

John Baldwin jhb at freebsd.org
Mon Aug 28 16:22:51 UTC 2017


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


More information about the svn-src-head mailing list