On 10/26/2015 08:14 AM, Gabriel Krisman Bertazi wrote:
> Add a new '-vc <policy>' option to raid-create to allow setting Sync
> Write Cache policy for vsets during raid creation.  For performance
> reasons, if user doesn't specify any policy and adapter supports it, it
> will default to Writeback.
> 
> New syntax allowed:
> 
> $ iprconfig -c raid-create sg1 -z -c writeback
> $ iprconfig -c raid-create sg1 -r 10 -c writethrough
> 
> Signed-off-by: Gabriel Krisman Bertazi <kris...@linux.vnet.ibm.com>
> ---
>  iprconfig.8 |  6 ++++--
>  iprconfig.c | 34 ++++++++++++++++++++++++++++++++--
>  2 files changed, 36 insertions(+), 4 deletions(-)
> 
> diff --git a/iprconfig.8 b/iprconfig.8
> index 682ec69..65bb1e3 100644
> --- a/iprconfig.8
> +++ b/iprconfig.8
> @@ -474,12 +474,14 @@ specified array will be displayed.
>  .br
>  Show the current write cache policy for [device].
>  .TP
> -.B raid-create [-r raid_level] [-s stripe_size_in_kb] [-l label] 
> [--skip-format] [devices...]
> +.B raid-create [-r raid_level] [-s stripe_size_in_kb] [-l label] 
> [--skip-format] [-vc cache_policy] [devices...]

I think you missed my previous comment. Can we change the -vc option to be -c 
instead?

>  Create a RAID array. RAID level can be any supported RAID level for the given
>  adapter, such as 0, 10, 5, 6. Currently supported stripe sizes in kb 
>  include 16, 64, and 256. If raid_level is not specified, it will default to
>  RAID 5. If stripe size is not specified, it will default to the recommended
> -stripe size for the selected RAID level. Devices are specified with their 
> full
> +stripe size for the selected RAID level.  Available cache policies are the
> +same that can be passed to set-write-cache-policy command.  If none is
> +specified, write back is assumed.  Devices are specified with their full
>  name, either the /dev/sd name or the /dev/sg name is acceptable. On some RAID
>  adapters, a label can also be specified. Example array
>  creation:
> diff --git a/iprconfig.c b/iprconfig.c
> index e591655..c4f8c77 100644
> --- a/iprconfig.c
> +++ b/iprconfig.c
> @@ -59,6 +59,7 @@ struct array_cmd_data {
>       u16 stripe_size;
>       int qdepth;
>       u32 do_cmd;
> +     int vset_cache;
>       struct ipr_ioa *ioa;
>       struct ipr_dev *dev;
>       struct ipr_array_query_data *qac;
> @@ -4031,11 +4032,14 @@ int raid_start_complete()
>                                                       } else
>                                                               retry = 0;
>                                                       if 
> (ipr_get_dev_attr(dev, &attr)) {
> -                                                             syslog(LOG_ERR, 
> _("Unable to read queue_depth"));
> +                                                             syslog(LOG_ERR,
> +                                                                    
> _("Unable to read attributes when creating arrays"));
>                                                       } else {
>                                                               
> attr.queue_depth = cur_raid_cmd->qdepth;
> +                                                             
> attr.write_cache_policy = cur_raid_cmd->vset_cache;
>                                                               if 
> (ipr_set_dev_attr(dev, &attr, 1))
> -                                                                     
> syslog(LOG_ERR, _("Unable to set queue_depth"));
> +                                                                     
> syslog(LOG_ERR,
> +                                                                            
> _("Unable to set attributes when creating arrays"));
>                                                       }
>                                               } else
>                                                       break;

> @@ -13691,6 +13697,8 @@ static int raid_create(char **args, int num_args)
>                       next_qdepth = 1;
>               else if (strcmp(args[i], "-l") == 0)
>                       next_label = 1;
> +             else if (strcmp(args[i], "-vc") == 0)

And here as well.

> +                      next_vcache = 1;
>               else if (strcmp(args[i], "--skip-format") == 0)
>                       skip_format = 1;
>               else if (next_raid_level) {



-- 
Brian King
Power Linux I/O
IBM Linux Technology Center


------------------------------------------------------------------------------
_______________________________________________
Iprdd-devel mailing list
Iprdd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iprdd-devel

Reply via email to