[Devel] [PATCH rh7] ve/net: allow to change max number of net devices for running CT
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Mar 1 17:33:48 MSK 2019
If a Container hits "ve::netif_max_nr", we want to fix the situation by
increasing the limit without a Container restart, so allow this.
Note: too low value set can turn "ve::netif_avail_nr" to negative,
that's OK, the code is ready for that.
https://jira.sw.ru/browse/PSBM-92132
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
kernel/ve/ve.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
index 37c65c93abef..f1aef51f8bd5 100644
--- a/kernel/ve/ve.c
+++ b/kernel/ve/ve.c
@@ -1307,7 +1307,12 @@ static u64 ve_read_u64(struct cgroup *cg, struct cftype *cft)
return atomic_read(&cgroup_ve(cg)->netns_avail_nr);
else if (cft->private == VE_CF_NETIF_MAX_NR)
return cgroup_ve(cg)->netif_max_nr;
- else if (cft->private == VE_CF_NETIF_NR)
+ return 0;
+}
+
+static s64 ve_read_s64(struct cgroup *cg, struct cftype *cft)
+{
+ if (cft->private == VE_CF_NETIF_NR)
return atomic_read(&cgroup_ve(cg)->netif_avail_nr);
return 0;
}
@@ -1598,12 +1603,12 @@ static struct cftype ve_cftypes[] = {
.name = "netif_max_nr",
.flags = CFTYPE_NOT_ON_ROOT,
.read_u64 = ve_read_u64,
- .write_u64 = ve_write_u64,
+ .write_u64 = ve_write_running_u64,
.private = VE_CF_NETIF_MAX_NR,
},
{
.name = "netif_avail_nr",
- .read_u64 = ve_read_u64,
+ .read_s64 = ve_read_s64,
.private = VE_CF_NETIF_NR,
},
{
--
2.15.1
More information about the Devel
mailing list