# [Risolto] Curiosità circa n° cpu supportate dal kernel.

## ciro64

Ciao; in Gentoo-sources il massimo n° cpu "visibili" è 512.

in Fedora per esempio è 4096.

Questo è relativo a qualche impostazione nel mio custom kernel oppure dipende da qualche patch aggiuntiva ?

Scusate mia curiosità  :Smile: 

----------

## sabayonino

 *ciro64 wrote:*   

> Ciao; in Gentoo-sources il massimo n° cpu "visibili" è 512.
> 
> in Fedora per esempio è 4096.
> 
> Questo è relativo a qualche impostazione nel mio custom kernel oppure dipende da qualche patch aggiuntiva ?
> ...

 

è personalizzabile

questo è il mio dei gentoo-sources ... mai toccato

```
CONFIG_NR_CPUS=8192
```

----------

## ciro64

Grazie Sabayonino; questa informazione la trovo in the kernel source tree dando per esempio:

```

ci74771ht ~ # grep -r CPUMASK_OFFSTACK * /usr/src/linux/

/usr/src/linux/mm/page_alloc.c:  * direct reclaim path for CONFIG_CPUMASK_OFFSTACK=y

/usr/src/linux/arch/blackfin/kernel/irqchip.c:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/arch/blackfin/kernel/irqchip.c:#error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK."

/usr/src/linux/arch/x86/Kconfig:        select CPUMASK_OFFSTACK

/usr/src/linux/arch/x86/Kconfig:        range 2 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK

/usr/src/linux/arch/x86/Kconfig:        range 2 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64

/usr/src/linux/arch/x86/Kconfig:          kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum

/usr/src/linux/crypto/pcrypt.c:  * CONFIG_CPUMASK_OFFSTACK macro). Depending on the configuration

/usr/src/linux/tools/testing/selftests/rcutorture/configs/rcu/TREE07:CONFIG_CPUMASK_OFFSTACK=y

/usr/src/linux/include/linux/sched.h:#ifndef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/include/linux/cpumask.h:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/include/linux/cpumask.h:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/include/linux/cpumask.h:#endif /* CONFIG_CPUMASK_OFFSTACK */

/usr/src/linux/include/linux/mm_types.h:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/include/linux/mm_types.h:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/kernel/sched/core.c:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/kernel/sched/core.c:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/kernel/sched/core.c:#endif /* CONFIG_CPUMASK_OFFSTACK */

/usr/src/linux/lib/cpumask.c:#ifdef CONFIG_CPUMASK_OFFSTACK

/usr/src/linux/lib/cpumask.c: * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is

/usr/src/linux/lib/cpumask.c: * CONFIG_CPUMASK_OFFSTACK=n, so does code elimination in that case

/usr/src/linux/lib/cpumask.c: * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is

/usr/src/linux/lib/cpumask.c: * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is

/usr/src/linux/lib/Kconfig:config CPUMASK_OFFSTACK

```

Però se uso il menuconfig, in processor types & features => Maximum number of cpu, non mi accetta valori superiori a 512.

Quindi ... può essere che tu abbia abilitato qualcosa mentre io no? ... uhm ... e dove vado a "pescare" questo "non so che?" scusa se parlo quasi come Vasco Rossi  :Very Happy: 

Grazie 1000

----------

## sabayonino

No Forced Preamption (Server) = 32

Voluntary Kernel Preamption (Desktop) : 8192

Preemtible Kernel (Low Latency Desktop) :512

http://imageshack.com/a/img903/5914/OnbeYv.png

----------

## ciro64

Magico Sabayonino ..... sei "enciclopedico". difatti io ho impostato come "low latency desktop"

Grazie infinite Mago  :Smile: 

Ho scelto preemptible perchè uso multitasking: boinc + multimedia .....

Non so se è la miglior scelta.

Se puoi darmi un'ultima dritta Grazie 100000000

Edit ... no: purtroppo non è sufficiente: sia che metto come server che come desktop o preemptible non riesco ad impostare un numero superiore a 512 cpu. 

Boh .... non so.  :Sad: 

----------

## sabayonino

 *ciro64 wrote:*   

> Magico Sabayonino ..... sei "enciclopedico". difatti io ho impostato come "low latency desktop"
> 
> Grazie infinite Mago 
> 
> Ho scelto preemptible perchè uso multitasking: boinc + multimedia .....
> ...

 

 :Rolling Eyes:   lo hai ricompilto il kernel ...spero

----------

## ciro64

Appena sfornato !!!!  :Very Happy: 

```

$ uname -a

Linux ci74771ht 3.18.11-gentoo #1 SMP Fri May 8 23:25:33 CEST 2015 x86_64 Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz GenuineIntel GNU/Linux

```

```

Preemption Model (Voluntary Kernel Preemption (Desktop)
```

inserendo ora 513 come max_n°_cpu ottengo errore.

```

                  ┌─────────────────────────────────────────┐

                  │ You have made an invalid entry.         │  

                  ├─────────────────────────────────(100%)──┤  

                  │                < Exit >                 │  

                  └─────────────────────────────────────────┘  

                                                               
```

Grazie per l'interesse !!!!!

----------

## sabayonino

hai solo quei 3 livelli che ti ho indicato.

non puoi inserire un valore qualsiasi

se provi a ricompilare il kernel con i vari valori , se controlli ti riporta i valori che ti ho indicato

e sono valori che seguono potenze di 2

2^5 =32

2^9 =  512

2^13 = 8192

----------

## ciro64

Scusa la domanda: ma che kernel hai ? e, riesci ad impostare 4096 cpu o fino a 8192 usando menuconfig ?

Grazie.

----------

## sabayonino

 *ciro64 wrote:*   

> Scusa la domanda: ma che kernel hai ? e, riesci ad impostare 4096 cpu o fino a 8192 usando menuconfig ?
> 
> Grazie.

 

```
Installed versions:  3.18.11(3.18.11)^bs(20:59:57 07/04/2015)(experimental symlink -build -deblob)
```

leggi bene seopra. 

hai 3 livelli a disposizione.

ogni livello imposta il numero di cpu indicato.

non c'è 560 , 4096 , 12 ,100 o altro

ma 

8192 --> desktop

512 --> Desktop low lat.

32 --> Server

PS : ho flag "experimental" abilitata .  forse attiva qualche cos'altro oltre all'ottimizzzione CPU

----------

## ciro64

Anche Io ho attivato "experimental"; in quanto prima intervenivo in Makefile di kernel aggiungendo "-march=native" in HOSTCFLAS e HOSTCXXFLAGS.

Grazie asd experimental si sono aperte quasi tutte le architetture anche se io ho impostato il "native". Ed inoltre ho scelto lo scheduler BFQ.

I've this situation now:

```

   Preemption Model (Voluntary Kernel Preemption (Desktop))

[ ] Enable Maximum number of SMP Processors and NUMA Nodes

```

Ma rimango sempre nella stessa situazione, ovvero al massimo

```

(512) Maximum number of CPUs

```

.Perdonami .... ma oltre 512 non me lo accetta. Scusami tanto per il disturbo che ti arreco   :Embarassed: 

Mentre riesco a scalare da 512 a 32 o 64 o ...... qualsiasi valore <= 512

Non dipende da qualcosa in kernel source tree da impostare ?

Scusa le tante domande..... ti ringrazio vivamente per l'interesse ..... ciao Magico !

----------

## ciro64

Ora ho capito.

```

$ grep CONFIG_NR_CPU /usr/src/linux/.config

CONFIG_NR_CPUS=8192

```

 usando "desktop". però .... mi sembra una cosa bizzarra che disabilitando l'opzione riguardo l'impostazione n° CPU in menuconfig riesca a far vedere fino a 512) , mentre attivandola non ho più il modo per customizzare.

(spero non essermi espresso troppo male ...  :Neutral: 

Boh ... comunque grazie "enciclopedico" Sabayonino  :Smile: 

----------

