# Kernel config - Proper processor features for Core M 5Y10

## zhak

I'm configuring kernel for Intel Core M 5Y10 CPU, and wanted to make sure I get things right.

This CPU has 2 cores/4 threads. Please correct me if I'm wrong, but I need to set the following:

- Maximum number of CPUs (NR_CPUS) = 3 -- since it has only 2 cores

- SMT (Hyperthreading) scheduler support (SCHED_SMT) = y -- since it supports Intel Hyper-Threading Technology

- Multi-core scheduler support (SCHED_MC) = y -- since it's multi-core

- NUMA support - disabled

Thanks in advance

----------

## trubicoid

NR_CPUS should be 4, but I would not set it, instead set MAXSMP to Y

 *Quote:*   

> CONFIG_MAXSMP:  
> 
>  Enable maximum number of CPUS and NUMA Nodes for this architecture.          

 

otherwise you're correct

----------

## Hu

trubicoid: No, MAXSMP should not be set to Y.  From Kconfig NR_CPUS defaults:

```
   default "1" if !SMP

   default "8192" if MAXSMP

   default "32" if SMP && X86_BIGSMP

   default "8" if SMP && X86_32

   default "64" if SMP
```

NR_CPUS should be the number of CPUs you want the kernel to be able to manage.  On a single-socket, multi-core system, it should be the number of cores.  If the system is hyperthread capable in hardware, and hyperthreading is enabled in the BIOS, NR_CPUS should be adjusted to treat each hyperthread as a separate CPU.  Historically, hyperthread capable CPUs had two hyperthread processors per-core, so a quad-core with hyperthreading would choose NR_CPUS=8.  Ark says you have two cores, and with hyperthreading that would give you four effective cores, so you should set NR_CPUS=4 if you enable hyperthreading in the BIOS or NR_CPUS=2 if you disable hyperthreading in the BIOS.  Why did you suggest NR_CPUS=3?

----------

## trubicoid

interesting, I thought MAXSMP detects the number of CPU during the boot

8k CPUs is too much   :Very Happy: 

----------

