mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-08-19 04:41:25 +00:00
netprio uses cgroup ID to index the priority mapping table. This is currently okay as cgroup IDs are allocated using idr and packed. However, cgroup IDs will be changed to use full 64bit range and won't be packed making this impractical. netprio doesn't care what type of IDs it uses as long as they can identify the controller instances and are packed. Let's switch to css IDs instead of cgroup IDs. Change-Id: Ib20b69e91ecee4540a80699fcedb171432420a4b Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Neil Horman <nhorman@tuxdriver.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Namhyung Kim <namhyung@kernel.org>
61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
/*
|
|
* netprio_cgroup.h Control Group Priority set
|
|
*
|
|
*
|
|
* Authors: Neil Horman <nhorman@tuxdriver.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
* Software Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
*/
|
|
|
|
#ifndef _NETPRIO_CGROUP_H
|
|
#define _NETPRIO_CGROUP_H
|
|
|
|
#include <linux/cgroup.h>
|
|
#include <linux/hardirq.h>
|
|
#include <linux/rcupdate.h>
|
|
|
|
#if IS_ENABLED(CONFIG_CGROUP_NET_PRIO)
|
|
struct netprio_map {
|
|
struct rcu_head rcu;
|
|
u32 priomap_len;
|
|
u32 priomap[];
|
|
};
|
|
|
|
static inline u32 task_netprioidx(struct task_struct *p)
|
|
{
|
|
struct cgroup_subsys_state *css;
|
|
u32 idx;
|
|
|
|
rcu_read_lock();
|
|
css = task_css(p, net_prio_cgrp_id);
|
|
idx = css->id;
|
|
rcu_read_unlock();
|
|
return idx;
|
|
}
|
|
|
|
static inline void sock_update_netprioidx(struct sock_cgroup_data *skcd)
|
|
{
|
|
if (in_interrupt())
|
|
return;
|
|
|
|
sock_cgroup_set_prioidx(skcd, task_netprioidx(current));
|
|
}
|
|
|
|
#else /* !CONFIG_CGROUP_NET_PRIO */
|
|
|
|
static inline u32 task_netprioidx(struct task_struct *p)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void sock_update_netprioidx(struct sock_cgroup_data *skcd)
|
|
{
|
|
}
|
|
|
|
#endif /* CONFIG_CGROUP_NET_PRIO */
|
|
#endif /* _NET_CLS_CGROUP_H */
|