feat: add smap blocklist for some oracle linux kernels
This commit is contained in:
		| @@ -79,6 +79,29 @@ func (ol OracleLinux) Kernels() (kernels []distro.KernelInfo, err error) { | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	// Some kernels do not work with the smap enabled | ||||||
|  | 	// | ||||||
|  | 	// BUG: unable to handle kernel paging request at 00007fffc64b2fda | ||||||
|  | 	// IP: [<ffffffff8127a9ed>] strnlen+0xd/0x40" | ||||||
|  | 	// ... | ||||||
|  | 	// Call Trace: | ||||||
|  | 	//  [<ffffffff81123bf8>] dtrace_psinfo_alloc+0x138/0x390 | ||||||
|  | 	//  [<ffffffff8118b143>] do_execve_common.isra.24+0x3c3/0x460 | ||||||
|  | 	//  [<ffffffff81554d70>] ? rest_init+0x80/0x80 | ||||||
|  | 	//  [<ffffffff8118b1f8>] do_execve+0x18/0x20 | ||||||
|  | 	//  [<ffffffff81554dc2>] kernel_init+0x52/0x180 | ||||||
|  | 	//  [<ffffffff8157cd2c>] ret_from_fork+0x7c/0xb0 | ||||||
|  | 	// | ||||||
|  | 	smapBlocklist := []string{ | ||||||
|  | 		"3.8.13-16", | ||||||
|  | 		"3.8.13-26", | ||||||
|  | 		"3.8.13-35", | ||||||
|  | 		"3.8.13-44", | ||||||
|  | 		"3.8.13-55", | ||||||
|  | 		"3.8.13-68", | ||||||
|  | 		"3.8.13-98", | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	for i, k := range kernels { | 	for i, k := range kernels { | ||||||
| 		// The latest uek kernels require gcc-11, which is | 		// The latest uek kernels require gcc-11, which is | ||||||
| 		// only present in el8 with scl load, so not so | 		// only present in el8 with scl load, so not so | ||||||
| @@ -88,6 +111,14 @@ func (ol OracleLinux) Kernels() (kernels []distro.KernelInfo, err error) { | |||||||
| 			cnt := strings.Replace(k.ContainerName, "8", "9", -1) | 			cnt := strings.Replace(k.ContainerName, "8", "9", -1) | ||||||
| 			kernels[i].ContainerName = cnt | 			kernels[i].ContainerName = cnt | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		for _, ver := range smapBlocklist { | ||||||
|  | 			if strings.Contains(k.KernelVersion, ver) { | ||||||
|  | 				kernels[i].CPU.Flags = append( | ||||||
|  | 					kernels[i].CPU.Flags, "smap=off", | ||||||
|  | 				) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return | 	return | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user