Commit Graph

71 Commits

Author SHA1 Message Date
Lei Chen b5d85c9684 PCI: Probe bridge window attributes once at enumeration-time
upstream: 51c48b310183ab6ba5419edfc6a8de889cc04521

pci_bridge_check_ranges() determines whether a bridge supports the optional
I/O and prefetchable memory windows and sets the flag bits in the bridge
resources.  This *could* be done once during enumeration except that the
resource allocation code completely clears the flag bits, e.g., in the
pci_assign_unassigned_bridge_resources() path.

The problem with pci_bridge_check_ranges() in the resource allocation path
is that we may allocate resources after devices have been claimed by
drivers, and pci_bridge_check_ranges() *changes* the window registers to
determine whether they're writable.  This may break concurrent accesses to
devices behind the bridge.

Add a new pci_read_bridge_windows() to determine whether a bridge supports
the optional windows, call it once during enumeration, remember the
results, and change pci_bridge_check_ranges() so it doesn't touch the
bridge windows but sets the flag bits based on those remembered results.

Signed-off-by: Lei Chen <lennychen@tencent.com>
2020-12-25 15:38:45 +08:00
Lei Chen 8cc9daaef1 virtblk: print useful info for timeout scenario
Signed-off-by: Lei Chen <lennychen@tencent.com>
2020-12-25 15:38:30 +08:00
yongduan 3853775fa6 smp: smp_call_function_many_async
Run an asynchronous function on a many cpus.
smp_call_function_many_async_begin
for_each_csd
        smp_call_function_many_async
smp_call_function_many_async_end

Signed-off-by: yongduan <yongduan@tencent.com>
2020-12-01 10:34:56 +08:00
zgpeng 8cbbd36a38 proc: fix the display error of the processes field in /proc/stat
Signed-off-by: zhiguang peng <zgpeng@tencent.com>
2020-11-12 14:39:06 +08:00
fuhaiwang d4619cc0fc
Merge pull request #24 from kenieevan/master
introduce ipvs_mode to share ipvs service and connection between network namespace
2020-09-23 19:02:00 +08:00
Chunguang Xu 0916c3f20e ext4: optimize the calculation of inode prealloc-list length
We have limited the length of the inode prealloc list, and here are
some optimizations for the calculation of the length of the list.

Signed-off-by: Chunguang Xu <brookxu@tencent.com>
2020-09-11 14:22:55 +08:00
Chunguang Xu 13d46976f1 ext4: limit the length of per-inode prealloc list
In the scenario of writing sparse files, the Per-inode prealloc list may
be very long, resulting in high overhead for ext4_mb_use_preallocated().
To circumvent this problem, we limit the maximum length of per-inode
prealloc list to 512 and allow users to modify it.

Signed-off-by: Chunguang Xu <brookxu@tencent.com>
2020-09-11 14:22:55 +08:00
jianmingfan 050ed008c3 Introduce ipvs_mode to share ipvs service and connection between net namespace
1) switch to default net ns during entry function
2) switch to skb's dev net ns during route
3) DNAT to local ip will set skb->dst to loopback dev
4) rename bpf_mode_on to ipvs_mode

Signed-off-by: jianmingfan <jianmingfan@tencent.com>
2020-09-08 00:42:25 +08:00
gxm-newtonf 909e59b0ef
Merge pull request #19 from kenieevan/master
ipvs-ebpf: add non-masqurade-agent support.
2020-07-16 15:23:20 +08:00
Liu Hua 1fe0578c20 cgroup: add switch for subsystem stats isolated
Statictics of memcg, cpuset, cpuacct and blkio export by /proc/
 when switch enabled.

Signed-off-by: Liu Hua <shookliu@tencent.com>
2020-07-16 14:52:41 +08:00
chen xiaoguang e59390ab76 Revert "sched/BT: add RDT support for BT scheduler class"
This reverts commit a2119393bd.

Signed-off-by: Xiaoguang Chen <xiaoggchen@tencent.com>
2020-07-16 12:41:34 +08:00
Hongbo Li 0b46e0dbd4 net: sched when reading udp proc
cat /proc/net/udp may cause long latency.
Add cond_resched() when reading this proc file.

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-07-08 16:07:57 +08:00
Hongbo Li 61d7e2b266 net: sched when reading tcp proc
cat /proc/net/tcp may cause long latency.
Add cond_resched() when reading this proc file.

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-07-08 16:07:55 +08:00
Hongbo Li fcf7481192 net: more entropy from net_hash_mix
upstream: 5424ea27390f ("netns: get more entropy from net_hash_mix()")

struct net are effectively allocated from order-1 pages on x86,
with one object per slab, meaning that the 13 low order bits
of their addresses are zero.

Once shifted by L1_CACHE_SHIFT, this leaves 7 zero-bits,
meaning that net_hash_mix() does not help spreading
objects on various hash tables.

For example, TCP listen table has 32 buckets, meaning that
all netns use the same bucket for port 80 or port 443.

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-07-08 16:07:52 +08:00
Hongbo Li 7ab7c64182 net: increase listening hash size
increase listening hash size from 32 to 4096

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-07-08 16:07:50 +08:00
Zhiping du de427fd173 getsockopt: add SO_MARK2 to get the MARK of flow
[tkernel2 commit c6f2e27f7ad]

add SO_MARK2 to get the MARK of flow

Signed-off-by: brookxu <brookxu@tencent.com>

Signed-off-by: Zhiping Du <zhipingdu@tencent.com>
2020-07-08 16:04:22 +08:00
jianmingfan 9465674790 ipvs-ebpf: add non-masqurade-agent support.
previously, for clusterIP type service, no SNAT is done.
However, in some case, user may add rs ip outside vpc which may require
SNAT.

To address this issue, a non snat ip table of max 64 entries are added.

Usage:

1. echo -n "0.0.0.0/0" > /proc/net/ip_vs_non_masq_cidrs will make all ip
bypass snat.

2. echo -n ":" > /proc/net/ip_vs_non_masq_cidrs will make all ip do snat.

3. echo "a.b.c.d/24:a.b.c.e/24" >  /proc/net/ip_vs_non_masq_cidrs

Test case:

create a cluster with 9 PODS

172.19.0.175  172.19.0.176   172.19.0.177 172.19.0.241 172.19.0.242
172.19.0.243 172.19.0.244 172.19.0.100  172.19.0.101

0)

/proc/net/ip_vs_non_masq_cidrs is empty, curl cluster ip shall do SNAT
result: pass

1)

Three ip/32 in  /proc/net/ip_vs_non_masq_cidrs

echo "172.19.0.175/32:172.19.0.176/32:172.19.0.177/32" > /proc/net/ip_vs_non_masq_cidrs

Test:  curl the clusterip, and watch the tcpdump log

Expected result:

access to the ip in list no SNAT; access to the ip not in list do SNAT.

Result: pass, no leak.

2)  stress test

wrk  the clusterip , at the same time, run a program to modify the ip_vs_non_masq_cidrs in a loop

Expected result: curl ok. lo leak

    while [ 1 ]
    do
            echo "172.19.0.175/32:172.19.0.176/32:172.19.0.177/32" > /proc/net/ip_vs_non_masq_cidrs

            sleep 1
            cat /proc/net/ip_vs_non_masq_cidrs
            echo ""
            echo "172.19.0.175/32" > /proc/net/ip_vs_non_masq_cidrs
            sleep 1
            cat /proc/net/ip_vs_non_masq_cidrs
            echo ""
    done

result:  no leak;

3) corner test

write "0.0.0.0/0" to it.

expected result: shall not do SNAT.

result:  ok

echo  -n ":
expected result: do SNAT
result: ok

Signed-off-by: jianmingfan <jianmingfan@tencent.com>
2020-07-07 18:11:48 +08:00
Xiaoming Gao a85a2f815b Merge branch 'master' of https://github.com/Tencent/TencentOS-kernel 2020-06-24 10:29:31 +08:00
He Chen de8ae6bfd2 sched/bt: cgroup support and ignore cpu binding for offline task
This commit add cpu.offline to cpu cgroup, echo 1 > cpu.offline would
convert all tasks under this cgroup to offline task. Beside, a new
sysctl sysctl_sched_bt_ignore_cpubind is added, which makes offline
tasks ignoring CPU binding and running on any CPU.

Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-06-24 10:09:06 +08:00
YangYuxi a01a9445c0 ipvs: avoid drop first packet by reusing conntrack
Since 'commit f719e3754ee2 ("ipvs: drop first packet to
redirect conntrack")', when a new TCP connection meet
the conditions that need reschedule, the first syn packet
is dropped, this cause one second latency for the new
connection, more discussion about this problem can easy
search from google, such as:

1)One second connection delay in masque
https://marc.info/?t=151683118100004&r=1&w=2

2)IPVS low throughput #70747
https://github.com/kubernetes/kubernetes/issues/70747

3)Apache Bench can fill up ipvs service proxy in seconds #544
https://github.com/cloudnativelabs/kube-router/issues/544

4)Additional 1s latency in `host -> service IP -> pod`
https://github.com/kubernetes/kubernetes/issues/90854

5)kube-proxy ipvs conn_reuse_mode setting causes errors
with high load from single client
https://github.com/kubernetes/kubernetes/issues/81775

The root cause is when the old session is expired, the
conntrack related to the session is dropped by
ip_vs_conn_drop_conntrack. The code is as follows:
```
static void ip_vs_conn_expire(struct timer_list *t)
{
...

     if ((cp->flags & IP_VS_CONN_F_NFCT) &&
         !(cp->flags & IP_VS_CONN_F_ONE_PACKET)) {
             /* Do not access conntracks during subsys cleanup
              * because nf_conntrack_find_get can not be used after
              * conntrack cleanup for the net.
              */
             smp_rmb();
             if (ipvs->enable)
                     ip_vs_conn_drop_conntrack(cp);
     }
...
}
```
As shown in the code, only when condition (cp->flags & IP_VS_CONN_F_NFCT)
is true, the function ip_vs_conn_drop_conntrack will be called.

So we optimize this by following steps (Administrators
can choose the following optimization by setting
net.ipv4.vs.conn_reuse_old_conntrack=1):
1) erase the IP_VS_CONN_F_NFCT flag (it is safely because
   no packets will use the old session)
2) call ip_vs_conn_expire_now to release the old session,
   then the related conntrack will not be dropped
3) then ipvs unnecessary to drop the first syn packet, it
   just continue to pass the syn packet to the next process,
   create a new ipvs session, and the new session will related
   to the old conntrack(which is reopened by conntrack as a new
   one), the next whole things is just as normal as that the old
   session isn't used to exist.

The above processing has no problems except for passive FTP,
for passive FTP situation, ipvs can judging from
condition (atomic_read(&cp->n_control)) and condition (cp->control).
So, for other conditions(means not FTP), ipvs should give users
the right to choose,they can choose a high performance one processing
logical by setting net.ipv4.vs.conn_reuse_old_conntrack=1. It is necessary
because most business scenarios (such as kubernetes) are very sensitive
to TCP short connection latency.

This patch has been verified on our thousands of kubernets
node servers on Tencent Inc.

Signed-off-by: YangYuxi <yx.atom1@gmail.com>
2020-06-23 19:45:04 +08:00
jianmingfan 8ec35911f7 add no_route_to_host_fix switch to turn on/off the fix in bpf mode
Test case
	1) conn_reuse_mode = 1 && no_route_to_host_fix==1
	result: wrk performance good
	2) conn_reuse_mode = 1 && no_route_to_host_fix==0
	result: wrk performance bad, packet loss
	3) conn_reuse_mode = 0 && no_route_to_host_fix==0
	result: wrk performance good. icmp no route to host error
	4) conn_reuse_mode = 0 && no_route_to_host_fix==1
	result: wrk performance good. no icmp no route to host error

Signed-off-by: jianmingfan <jianmingfan@tencent.com>
2020-05-29 10:41:05 +08:00
jianmingfan ef8004f8fe 1) fix conn_reuse_mode=1 performance degradation as introduced in commit
year 2015 d752c364571743d696c2a54a449ce77550c35ac5
year 2016 f719e3754ee2f7275437e61a6afd520181fdd43b

current only fix it in bpf mode. It will later be promoted to ipvs mode.

The key is that add a ref count in ct so that old/new ip_vs_conn can share it
without packet loss.

Test case
./wrk http 1.0 test, the cps increases from 1.5K to 30K.

2) solve no route to host bug

when conn_reuse_mode = 0, new connection may be redirect to rs with weight=0
if client  port reuse. This cause icmp no route to host if the rs is
terminating

Test case:
 1. wrk http1.0 from client
 2. set rs to zero on lb, then kill the rs

in ipvs mode, you can see icmp error like
14:17:28.509454 IP 10.0.0.4 > 10.0.0.17: ICMP host 172.16.0.16 unreachable, length 68

in bpf mode, this is fixed.

Signed-off-by: jianmingfan <jianmingfan@tencent.com>
2020-05-29 10:41:03 +08:00
He Chen a2119393bd sched/BT: add RDT support for BT scheduler class
Offline tasks (BT tasks) may have some performance impact to online
tasks.
In this commit, we introduce Intel RDT features to limit offline tasks
L3 cache usage to avoid the influence caused by offline tasks.

Signed-off-by: Xiaoguang Chen <xiaoggchen@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-05-29 10:40:58 +08:00
Yuxi Yang a44d7f91a8 ip_vs: add sysctl to bypass estimation
Signed-off-by: Fuhai Wang <fuhaiwang@tencent.com>
2020-05-29 10:40:54 +08:00
Kaixu Xia b0e23ef723 pagecachelimit: add the slab(dentry&inode) limit support
Add the support that controlling slab(dentry&inode) limit and the
corresponding sysctl interface.

Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
2020-05-29 10:40:24 +08:00
Xiaoming Gao 9de8b674e2 slub: add fast_slub_nr_free to track free objects
use lightweight track method to count free objects in
slub, remove heavy logic in spin_lock_irqsave.

Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-05-29 10:40:21 +08:00
brookxu b0009bfea9 writeback: eliminate work item allocation in bd_start_writeback()
commit <aac8d41cd438f25bf3110fc6b98f1d16d7dbc169>
commit <85009b4f5f0399669a44f07cb9a5622c0e71d419>

When someone calls wakeup_flusher_threads() or
wakeup_flusher_threads_bdi(), they schedule writeback of all dirty
pages in the system (or on that bdi). If we are tight on memory, we
can get tons of these queued from kswapd/vmscan. This causes (at
least) two problems:

1) We consume a ton of memory just allocating writeback work items.
   We've seen as much as 600 million of these writeback work items
   pending. That's a lot of memory to pointlessly hold hostage,
   while the box is under memory pressure.

2) We spend so much time processing these work items, that we
   introduce a softlockup in writeback processing. This is because
   each of the writeback work items don't end up doing any work (it's
   hard when you have millions of identical ones coming in to the
   flush machinery), so we just sit in a tight loop pulling work
   items and deleting/freeing them.

Fix this by adding a 'start_all' bit to the writeback structure, and
set that when someone attempts to flush all dirty pages. The bit is
cleared when we start writeback on that work item. If the bit is
already set when we attempt to queue !nr_pages writeback, then we
simply ignore it.

This provides us one full flush in flight, with one pending as well,
and makes for more efficient handling of this type of writeback.

Signed-off-by: Chunguang Xu <brookxu@tencent.com>
2020-05-29 10:40:18 +08:00
Hongbo Li fe66d659f4 net: ipvs print limit
When there is no rs, kernel will print:
ipvs will print IPVS: rr: TCP xxxxxX - no destination available
But this is common in k8s.

So add a sysctl to allow user ignore this error.

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-05-29 10:40:16 +08:00
Xiaoming Gao 96c33f27b6 nf_conntrack: add tencent cloud vpcid vmip extend
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-05-29 10:40:12 +08:00
Hongbo Li 3d3057177e net: increase somaxconn
increase sysctl somaxconnn from 128 to 4096

Signed-off-by: Hongbo Li <herberthbli@tencent.com>
2020-05-29 10:40:02 +08:00
jianmingfan d1a590ff87 This big patch exhances IPVS with BPF SNAT
It does the following

    * To bypass netfilter and conntrack in BPF mode
      ** Add mode=1 switch in modprobe to enable BPF mode
      ** Register different set of netfilter hooks in BPF mode so that
         incoming and response packets are handled in NF PRE-ROUTING
         bypassing conntrack hooks.
      ** Don't access skb->dst if it is null.
      ** Force route in handle_response
      ** Call ip_finish_output directly instead of Netfilter api.
      ** User space shall set /proc/sys/net/ipv4/vs/conntrack to be zero
      ** Call ip defragment during pre-route when needed!

    * To interact with BPF map
      ** ip_vs_conn_new_bpf add entries into BPF map
      ** ip_vs_conn_unlink_bpf del them
      ** in lc,wlc,rr,wrr scheduler, avoid loopback traffic since BPF can't
     handle it currently.

    * Interface
      ** Add file ip_vs_bpf_proc.c to pass BPF map id into IPVS.
2020-05-29 10:39:38 +08:00
zgpeng f2ba303dbd vm: add max_map_count isolate switch
Add the max_map_count isolation switch kernel.isolate_max_map_count;
The isolation of max_map_count is turned on by default. If you want
to turn it off, set kernel.isolate_max_map_count to 0;

Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
2020-05-29 10:38:28 +08:00
Samuel Liao 660998b7a9 x86: add hygon family 18h 2020-03-13 19:37:23 +08:00
Lei Chen e8be225280 cgroup: blkio: adjust block io bps limit by weight
Kernel now supports cgroup bps and iops hard limit by io-throttling.
But that's not a scalable way, because block devices' bandwith is
always changing over time.

This patch dynamically adjusts bps limit of each blkio cgroup according
to its pre-set weight. Additionally, if a process has not issued any io
request during a time window, its weight will be shared by other processes
until its next io request.

Signed-off-by: Lei Chen <lennychen@tencent.com>
2020-03-11 11:11:46 +08:00
He Chen f1ac9bd18b sched/bt: add latency factor for bt load
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-03-02 22:03:10 +08:00
He Chen 0b667819c3 sched/bt: BT schduler cgroup support
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-03-02 22:03:10 +08:00
He Chen 0dd9de2d2b sched/bt: BT scheduler load balance support
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-03-02 22:03:09 +08:00
He Chen e6c42e61db sched/bt: BT scheduler bandwidth limit support
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-03-02 22:03:09 +08:00
He Chen b48a63ef2c sched: add offline scheduler class
The offline scheduler named BT sched is based on the CFS scheduler. We
also use the rb-tree as the run queue to save the runnable tasks. And the
vruntime concept is also used in the offline scheduler. And the priority
of offline scheduler is from 140 to 179. So now the schedulers in the
kernel are as follows: stop, RT, CFS, BT and idle.

Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
Signed-off-by: Hua Liu <shookliu@tencent.com>
Signed-off-by: Xiaogguang Chen <xiaoggchen@tencent.com>
Signed-off-by: Zhiguang Peng <zgpeng@tencent.com>
Signed-off-by: Bin Fan <tombinfan@tencent.com>
Signed-off-by: He Chen <heddchen@tencent.com>
2020-03-02 22:03:09 +08:00
Xiaoming Gao 42c43458cb tools: add ttools module to support ptrace protect
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-01-02 15:12:03 +08:00
Fan Bin 314bf3d4ba MMC: Use the device ID implied from device tree
Signed-off-by: Fan Bin <tombinfan@tencent.com>
2020-01-02 14:52:13 +08:00
Liu Yu b30d8580b8 arm/myimx6q: init config for myimx6q
Signed-off-by: Liu Yu <allanyuliu@tencent.com>
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-01-02 14:50:57 +08:00
Luis Henriques 78b249729b ceph: quota: add initial infrastructure to support cephfs quotas
This patch adds the infrastructure required to support cephfs quotas as it
is currently implemented in the ceph fuse client.  Cephfs quotas can be
set on any directory, and can restrict the number of bytes or the number
of files stored beneath that point in the directory hierarchy.

Quotas are set using the extended attributes 'ceph.quota.max_files' and
'ceph.quota.max_bytes', and can be removed by setting these attributes to
'0'.

Link: http://tracker.ceph.com/issues/22372
Signed-off-by: Luis Henriques <lhenriques@suse.com>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2020-01-02 12:23:05 +08:00
Liu Yu 055200e6c8 ceph: Add new mount option req_resend
Which control whether to resend requests if timeout. Further more,
the patch adds a debugfs file which can change this option during mount.

Signed-off-by: Liu Yu <allanyuliu@tencent.com>
2020-01-02 12:22:54 +08:00
Zhang Zhi 805cdc8b06 ceph: re-send osd requests if timeout
When osd requests timeout, the defaut action is discarding all timeout
requests and reseting the connection. It then returns IO errors to
userspace.

The patch re-send all timeout requests instead of discarding,
so that make the timeout transparent to userspace.

Signed-off-by: Liu Yu <allanyuliu@tencent.com>
2020-01-02 12:22:48 +08:00
loobinliu 22bbd5bd41 KVM: X86: Implement PV IPIs in linux guest
Based on upstream commit:
d63bae0 KVM: X86: Add kvm hypervisor init time platform setup callback
aaffcfd KVM: X86: Implement PV IPIs in linux guest

Implement paravirtual apic hooks to enable PV IPIs for KVM if the "send IPI"
hypercall is available.  The hypercall lets a guest send IPIs, with
at most 128 destinations per hypercall in 64-bit mode and 64 vCPUs per
hypercall in 32-bit mode.

Signed-off-by: loobinliu <loobinliu@tencent.com>
2020-01-02 12:21:01 +08:00
brookxu f22307c4c8 cpuset: fixed cpuset.stat process field value exception
The value of the cpuset.stat process field will be abnormal in
some scenarios. The reason for this problem is that the sum of
process_counts may be negative for several cpus.

Signed-off-by: brookxu <brookxu@tencent.com>
2020-01-02 12:20:45 +08:00
Xiaoming Gao c715d50029 tcp: make TCP_RTO_MIN/MAX be tunable
tcp_rto_min,tcp_rto_max control the parameters of them.
remember that the min value of tcp_rto_min is 4ms which
be used to be div by RTO_MAX.

Signed-off-by: Shan Wei <davidshan@tencent.com>
Signed-off-by: Fuhai Wang <fuhaiwang@tencent.com>
Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-01-02 12:20:29 +08:00
Chunguang Xu e7636c1b8b blkcg: add per blkcg diskstats
In order to facilitate each container to obtain its own IO statistics,
we implement per blkcg diskstats and expose some data from the host
into the container such as io_ticks.

Signed-off-by: Chunguang Xu <brookxu@tencent.com>
2020-01-02 12:19:49 +08:00
Xiaoming Gao 3893c04cf1 x86/irq: remapping Move irq remapping mode enum
merge from AMD

Signed-off-by: Xiaoming Gao <newtongao@tencent.com>
2020-01-02 12:19:01 +08:00