# Kernel questions

## 8086

I didn't want to create a thread for each of the items bellow so here it goes (even though items might be pretty much unrelated):

```

Sources: gentoo-sources

Version: 2.6.24

Processor: Intel Pentium "Dual Core" T2060 @ 1.60 GHz

```

```
General setup -> Control Group support

General setup -> Fair group CPU scheduler
```

These two seem like quite interesting options. Is anyone (reading this thread, obviously) using the above and care to give some details as to how they are using them?

```
Processor type and features ->High Resolution Timer Support

Processor type and features -> HPET Timer Support
```

How do I find out if "my hardware" has support for HIGH_RES_TIMERS? How do I find if my platform and BIOS support HPET_TIMER ?

```
Processor type and features -> /dev/cpu/microcode
```

Is updating the microcode on "Intel processors in the IA32 family" usually a safe procedure? Any particular reasons why anyone would want to do this?

```
Processor type and features -> 64 bit Memory and IO resources
```

The help on this option is just grand. "This option allows memory and IO resources to be 64 bit". Who exactly would need this? Like.. a practical situation.

```
Processor type and features -> Allocate 3rd-level pagetables from highmem
```

Again, great help text, as this option is intended for those systems which have "a lot of RAM". What does "a lot" mean?

```
Processor type and features -> Enable kernel irq balancing
```

I have a "Dual Core", each at 1.6 GHz. Would enabling the above option be a good idea? As a side note: even if I enable it, I still have to emerge sys-apps/irqbalance, don't I? If that is the case, how come it is not specified in the help text. Other options warn the user that a 3rd party utility is still needed.

--

I'll end this post here for now. If you can help with any of the above items, I'd be grateful.

----------

## NeddySeagoon

8086,

```
General setup -> Control Group support

General setup -> Fair group CPU scheduler
```

needs more than 2 CPUs to be very useful/interesting

It allows you do set up CPU groups for specified tasks. With 2 cores, it won't help.

```
Processor type and features ->High Resolution Timer Support

Processor type and features -> HPET Timer Support
```

IS supported on your CPU. Its beein in all IA32 for a long time now.

```
Processor type and features -> /dev/cpu/microcode
```

Its safe. The CPU microcode is stored in ROM inside the CPU but moved to RAM as part of power up, as its much faster. Intel would have used it to fix the FDIV bug but P1s did not support this feature.

```
Processor type and features -> 64 bit Memory and IO resources
```

You don't need that, you kerenl won't work if you selected it.

```
Processor type and features -> Allocate 3rd-level pagetables from highmem
```

 is only useful if you have > 1GB RAM.  It moves some stuff out of the bottom 1Gb.  There is a speed penalty for that move but it frees more RAM for your applications.

----------

## 8086

Thanks a lot NeddySeagoon! That really clarified things up for me. As I have exactly 1 GB of RAM I guess I don't need the HIGHMEM thing. Thanks again!

----------

## NeddySeagoon

8086,

You need to set the Himem kernel option off and choose the 1G/3G memory split to use all of your 1G to best effect.

----------

## mimosinnet

 *NeddySeagoon wrote:*   

> 
> 
> ```
> Processor type and features -> 64 bit Memory and IO resources
> ```
> ...

 

I had this option enabled in my kernel, and it was working with (I would say) without any visible issue. I am disabling it now after reading your post. I would very much appreciate if you could explain a little more what do you mean with "the kernel won't work". Many thanks!

----------

## MostAwesomeDude

 *mimosinnet wrote:*   

>  *NeddySeagoon wrote:*   
> 
> ```
> Processor type and features -> 64 bit Memory and IO resources
> ```
> ...

 

Meh. It just means, "use 64-bit datatypes for these resources." Your kernel will work with or without it enabled, except on some special hardware which is buggy. (Off the top of my head, only Geodes...)

----------

## 8086

 *NeddySeagoon wrote:*   

> 8086,
> 
> You need to set the Himem kernel option off and choose the 1G/3G memory split to use all of your 1G to best effect.

 

In my earlier post I had said I don't need that "HIGHMEM thing" I actually meant HIGHPTE  (Allocate 3rd-level pagetables from highmem). I have the CONFIG_HIGHMEM4G kernel option ON (High Memory Support -> 4GB) since I don't seem to get full 1GB of mem if I don't have it enabled.

I'm not sure what you meant by "choose the 1G/3G memory split".

----------

## mimosinnet

 *MostAwesomeDude wrote:*   

> Meh. It just means, "use 64-bit datatypes for these resources." Your kernel will work with or without it enabled, except on some special hardware which is buggy.

 

Thanks! 

 *8086 wrote:*   

> I have the CONFIG_HIGHMEM4G kernel option ON (High Memory Support -> 4GB) since I don't seem to get full 1GB of mem if I don't have it enabled.

 

```
CONFIG_HIGHMEM4G:                                                                                          │

  │                                                                                                            │

  │ Select this if you have a 32-bit processor and between 1 and 4                                             │

  │ gigabytes of physical RAM. 
```

 *8086 wrote:*   

> I'm not sure what you meant by "choose the 1G/3G memory split".

 

In the kernel configuration, you can find parameters by writing "/"+"search code". If I search "/1G" I get:

```
Symbol: VMSPLIT_1G [=n]                                                                                    │

  │ Prompt: 1G/3G user/kernel split                                                                            │

  │   Defined at arch/i386/Kconfig:587                                                                         │

  │   Depends on: <choice>                                                                                     │

  │   Location:                                                                                                │

  │     -> Processor type and features                                                                         │

  │       -> Memory split (<choice> [=n])
```

----------

## 8086

The problem is, if I bring up the list of "Processor type and features" I simply can not find that option in it. Sure searching via / *finds* it. `grep VMSPLIT /usr/src/linux/.config` doesn't return anything either.

----------

## NeddySeagoon

8086,

Here it is with some context.

```
  │ │    < > /dev/cpu/microcode - Intel IA32 CPU microcode support   

  │ │    <M> /dev/cpu/*/msr - Model-specific register support      

  │ │    <M> /dev/cpu/*/cpuid - CPU information support      

  │ │        High Memory Support (off)  --->       

  │ │        Memory split (3G/1G user/kernel split (for full 1G low memory))   

  │ │    [ ] PAE (Physical Address Extension) Support      

  │ │        Memory model (Flat Memory)  --->      
```

----------

## Jaglover

What is this microcode business anyway. Do I understand correctly one has to download the new (bugfixed? improved?) microcode from Intel? And use it instead of the microcode stored in CPU? Or am I completely off-track here?

----------

## NeddySeagoon

Jaglover,

Thats exactly right.

I'm not aware if intel have ever offered patched microcode but the feature is there and supported by the kernel.

Microcode loaded this way has to be loaded every boot.

----------

## Jaglover

Too bad I do not have currently any Intel CPU's

http://www.urbanmyth.org/microcode/

----------

## 8086

 *NeddySeagoon wrote:*   

> 8086,
> 
> Here it is with some context.
> 
> ```
> ...

 

Nope. I have something like this:

```

<*> /dev/cpu/*/cpuid - CPU information support

High Memory Support (4GB) --->

Memory model (Flat Memory) --->

```

It's just not there. (and apparently neither is the PAE thing).

Are you using gentoo-sources?

----------

## Jaglover

How did you generate your .config file?

----------

## 8086

make menuconfig.

I figured it out. Those options appear only if CONFIG_EMBEDDED (See General setup -> Configure standard kernel features (for small systems)) is enabled. I saw the name of the option and automatically dismissed it, but now that I've read the help text, I'm not so sure anymore. I'm not sure what other goodies this option enables, nor do I know if it's actually wortht it.Last edited by 8086 on Mon Jan 28, 2008 9:12 pm; edited 1 time in total

----------

## Jaglover

Using default .config file that came with sources? Or you copied it over from somewhere and neglected to read the README file?

----------

## 8086

Well so far so good although I'm still confused about the IRQ balancing issue. Alas, I'm getting ready for the 2nd wave of kernel related questions  :Smile:  brace yourselves. I'm glad that this thread is turning out to be helpful for other people except myself. I invite anyone to post questions of their own, just try to stay on topic (i.e. questions related to the kernel configuration).

----------

## Jaglover

 *8086 wrote:*   

> make menuconfig.
> 
> I figured it out. Those options appear only if CONFIG_EMBEDDED (See General setup -> Configure standard kernel features (for small systems)) is enabled. I saw the name of the option and automatically dismissed it, but now that I've read the help text, I'm not so sure anymore. I'm not sure what other goodies this option enables, nor do I know if it's actually wortht it.

 

I think this means you are using some old .config file which is messed up with new options.

----------

## Jaglover

 *8086 wrote:*   

> Well so far so good although I'm still confused about the IRQ balancing issue. Alas, I'm getting ready for the 2nd wave of kernel related questions  brace yourselves. I'm glad that this thread is turning out to be helpful for other people except myself. I invite anyone to post questions of their own, just try to stay on topic (i.e. questions related to the kernel configuration).

 

Does it mean my posts are off-topic and I'm not welcome here? Bye!

Edit: There is no black magic involved in kernel configuration. If I was you I'd remove that invalid .config file and would start clean with make allnoconfig.

----------

## 8086

Jaglover: I *do* hope that last post was intended to be a joke..

Actually I'm having a hard time trying to understand your last two posts. I think we kind of got out-of-sync because I made some edits whilst you were making some posts and what not.

I don't understand that "using some old .config file" thing. The config file was created this week for a 2.6.23 kernel and then updated for a 2.6.24 kernel. Alas, I don't see how my previous post implies my config. is broken. Like I've said: those options which were not appearing in my lists ONLY APPEAR if another option is selected first, mainly: Configure standard kernel features. If you read the Help text for that feature:

```
 This option allows certain base kernel options and settings to be disabled or tweaked. This is for specialized environments which can tolerate a "non-standard" kernel. Only use this if you really know what you are doing.
```

I think most can agree with me that this option should usually NOT be turned on by just about anyone, anytime, anywhere. You are saying that because I had this option turned OFF (and it was INTENTIONATLY turned off) my config is broken/invalid.

And again: I just don't get it:

 *Quote:*   

> Does it mean my posts are off-topic and I'm not welcome here? Bye!

 

If it was meant to be a joke, put some smileys or something next time, please?

----------

