feat(mem): add KernelStack field for VirtualMemoryStat on linux
diff --git a/mem/mem.go b/mem/mem.go
index f4f46f0..65b3915 100644
--- a/mem/mem.go
+++ b/mem/mem.go
@@ -62,6 +62,7 @@
 	Slab           uint64 `json:"slab"`
 	Sreclaimable   uint64 `json:"sreclaimable"`
 	Sunreclaim     uint64 `json:"sunreclaim"`
+	KernelStack    uint64 `json:"kernelStack"`
 	PageTables     uint64 `json:"pageTables"`
 	SwapCached     uint64 `json:"swapCached"`
 	CommitLimit    uint64 `json:"commitLimit"`
diff --git a/mem/mem_linux.go b/mem/mem_linux.go
index 413fc3e..f8ad898 100644
--- a/mem/mem_linux.go
+++ b/mem/mem_linux.go
@@ -187,6 +187,12 @@
 				return ret, retEx, err
 			}
 			ret.Sunreclaim = t * 1024
+		case "KernelStack":
+			t, err := strconv.ParseUint(value, 10, 64)
+			if err != nil {
+				return ret, retEx, err
+			}
+			ret.KernelStack = t * 1024
 		case "PageTables":
 			t, err := strconv.ParseUint(value, 10, 64)
 			if err != nil {
diff --git a/mem/mem_linux_test.go b/mem/mem_linux_test.go
index aff325c..b0ba23b 100644
--- a/mem/mem_linux_test.go
+++ b/mem/mem_linux_test.go
@@ -51,6 +51,7 @@
 			Slab:           253771776,
 			Sreclaimable:   186470400,
 			Sunreclaim:     67301376,
+			KernelStack:    14224,
 			PageTables:     65241088,
 			SwapCached:     0,
 			CommitLimit:    16509730816,
@@ -100,6 +101,7 @@
 			Slab:           9293824,
 			Sreclaimable:   2764800,
 			Sunreclaim:     6529024,
+			KernelStack:    624,
 			PageTables:     405504,
 			SwapCached:     0,
 			CommitLimit:    130289664,