Send a Change Cache parameters during IOA initialization to enable Sync Cache by default on adapters that support it.
Signed-off-by: Gabriel Krisman Bertazi <kris...@linux.vnet.ibm.com> --- iprlib.c | 10 ++++++++++ iprlib.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/iprlib.c b/iprlib.c index 609ffe3..7875442 100644 --- a/iprlib.c +++ b/iprlib.c @@ -7588,6 +7588,14 @@ int ipr_set_ioa_attr(struct ipr_ioa *ioa, struct ipr_ioa_attr *attr, int save) } } + if (ioa->has_vset_write_cache && attr->vset_write_cache && + power_cur_mode != POWER_BAREMETAL) { + /* vset cache should not be disabled adapter-wide + for any reason. So we don't save the parameter here. */ + ipr_change_cache_parameters(ioa, + IPR_IOA_SET_VSET_CACHE_ENABLED); + } + get_dual_ioa_state(ioa); /* for preferred_primary */ get_subsys_config(ioa); /* for gscsi_only_ha */ return 0; @@ -9434,6 +9442,8 @@ static void init_ioa_dev(struct ipr_dev *dev) attr.active_active = 1; if (dev->ioa->configure_rebuild_verify) attr.disable_rebuild_verify = 1; + if (dev->ioa->has_vset_write_cache) + attr.vset_write_cache = 1; ipr_modify_ioa_attr(dev->ioa, &attr); if (ipr_set_ioa_attr(dev->ioa, &attr, 0)) return; diff --git a/iprlib.h b/iprlib.h index 33ab390..0856d6c 100644 --- a/iprlib.h +++ b/iprlib.h @@ -222,6 +222,8 @@ typedef uint64_t u64; #define IPR_IOA_SET_CACHING_DISABLED 0x10 #define IPR_IOA_SET_CACHING_DUAL_DISABLED 0x20 #define IPR_IOA_SET_CACHING_DUAL_ENABLED 0x30 +#define IPR_IOA_SET_VSET_CACHE_ENABLED 0x40 +#define IPR_IOA_SET_VSET_CACHE_DISABLED 0x50 #define PHYSICAL_LOCATION_LENGTH 1024 @@ -1407,6 +1409,7 @@ struct ipr_ioa_attr { int caching; int rebuild_rate; int disable_rebuild_verify; + int vset_write_cache; }; #define IPR_DEV_MAX_PATHS 2 -- 2.1.0 ------------------------------------------------------------------------------ _______________________________________________ Iprdd-devel mailing list Iprdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iprdd-devel