Configuration/snakeoil: Difference between revisions
Agent Kith (talk | contribs) (→cpuset) |
Agent Kith (talk | contribs) (→cpuset) |
||
Line 4: | Line 4: | ||
[[File:Snakeoil.png|center|thumb|900x900px|Snakeoil]] | [[File:Snakeoil.png|center|thumb|900x900px|Snakeoil]] | ||
== Process Priority == | ==Process Priority== | ||
How various programs are executed in Linux to give you that multi-tasking ability is determined by something call a process scheduler. How it all works is beyond the scope of this manual, because it largely dependent on the technique (plus other stuffs). Suffice to say if you are using a cooperative scheduler then you can use this option to fine-tune how often a process gets "looked at" in the queue. Snakeoil kernels with RT patches are all preemptive so this option is probably useless. | How various programs are executed in Linux to give you that multi-tasking ability is determined by something call a process scheduler. How it all works is beyond the scope of this manual, because it largely dependent on the technique (plus other stuffs). Suffice to say if you are using a cooperative scheduler then you can use this option to fine-tune how often a process gets "looked at" in the queue. Snakeoil kernels with RT patches are all preemptive so this option is probably useless. | ||
[[File:Snakeoil - process priority.png|center|thumb|945x945px|Snakeoil - process priority]] | [[File:Snakeoil - process priority.png|center|thumb|945x945px|Snakeoil - process priority]] | ||
Click on the "''Add Process''" button to add a new process. In the ''process name'' field, enter the name (or part of) of the process you wish to reassign a new priority. The ''prio'' field is the new priority level you want this process to be set to (this field is numeric only, with 1 being lowest priority, and 99 being real-time). Note that we only adjust the priority level here and '''not the scheduler policy'''. The later is really reserved for advanced users and not for general use. | Click on the "''Add Process''" button to add a new process. In the ''process name'' field, enter the name (or part of) of the process you wish to reassign a new priority. The ''prio'' field is the new priority level you want this process to be set to (this field is numeric only, with 1 being lowest priority, and 99 being real-time). Note that we only adjust the priority level here and '''not the scheduler policy'''. The later is really reserved for advanced users and not for general use. | ||
== Kernel Tweaks == | ==Kernel Tweaks== | ||
Kernel tweaks are parameters you can specify for the boot kernel. Changing these settings will alter the behaviour of the booted kernel, and that in turn can influence the sound. These settings are experimental and the system may fail to boot, or become unstable. Please try these settings at your own risk. | Kernel tweaks are parameters you can specify for the boot kernel. Changing these settings will alter the behaviour of the booted kernel, and that in turn can influence the sound. These settings are experimental and the system may fail to boot, or become unstable. Please try these settings at your own risk. | ||
[[File:Snakeoil - Kernel Tweaks.png|center|thumb|953x953px|Snakeoil - Kernel Tweaks]] | [[File:Snakeoil - Kernel Tweaks.png|center|thumb|953x953px|Snakeoil - Kernel Tweaks]] | ||
=== Boot Kernel === | ===Boot Kernel=== | ||
You can upload kernels to your Snakeoil machine. The last uploaded kernel is always set as the default boot kernel, use this setting to override that behaviour and use a previous kernel as your default. | You can upload kernels to your Snakeoil machine. The last uploaded kernel is always set as the default boot kernel, use this setting to override that behaviour and use a previous kernel as your default. | ||
=== Clocksource === | ===Clocksource=== | ||
The purpose of the clock source is to provide a timeline for the system that tells you where you are in time. For example issuing the command 'date' on a Linux system will eventually read the clock source to determine exactly what time it is. The clock source shall have as high resolution as possible, and the frequency shall be as stable and correct as possible as compared to a real-world wall clock. It should not move unpredictably back and forth in time or miss a few cycles here and there. | The purpose of the clock source is to provide a timeline for the system that tells you where you are in time. For example issuing the command 'date' on a Linux system will eventually read the clock source to determine exactly what time it is. The clock source shall have as high resolution as possible, and the frequency shall be as stable and correct as possible as compared to a real-world wall clock. It should not move unpredictably back and forth in time or miss a few cycles here and there. | ||
Some common clock sources are: | Some common clock sources are: | ||
* tsc - Time Stamp Counter | *tsc - Time Stamp Counter | ||
* hpet - High Precision Event Counter (Only if enabled in BIOS) | *hpet - High Precision Event Counter (Only if enabled in BIOS) | ||
* acpi_pm | *acpi_pm | ||
=== Boot options === | ===Boot options=== | ||
These are additional command line options for the kernel. Please note these options while well tested in Linux may not be compatible with your hardware configuration. If the kernel fails to boot you'd need to manually modify the boot up options from the console to recover. | These are additional command line options for the kernel. Please note these options while well tested in Linux may not be compatible with your hardware configuration. If the kernel fails to boot you'd need to manually modify the boot up options from the console to recover. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 34: | Line 34: | ||
|No special boot parameters | |No special boot parameters | ||
|- | |- | ||
|acpi=noirq | |acpi=noirq | ||
|Do not use ACPI for IRQ routing or for PCI scanning | |Do not use ACPI for IRQ routing or for PCI scanning | ||
|- | |- | ||
Line 44: | Line 44: | ||
|- | |- | ||
|pnpacpi | |pnpacpi | ||
|Not sure what this does - does it turns on Plug N Play ACPI, or off? | |Not sure what this does - does it turns on Plug N Play ACPI, or off? | ||
|- | |- | ||
|nolapic | |nolapic | ||
Line 50: | Line 50: | ||
|} | |} | ||
== Music Software == | ==Music Software== | ||
Use this to install/uninstall software easily. Uninstall anything you don't need to reduce clutter, or install new players as they come. | Use this to install/uninstall software easily. Uninstall anything you don't need to reduce clutter, or install new players as they come. | ||
[[File:Snakeoil - music software.png|center|thumb|479x479px|Snakeoil - music software]] | [[File:Snakeoil - music software.png|center|thumb|479x479px|Snakeoil - music software]] | ||
== System Services == | ==System Services== | ||
You have the choice to disable these services. Doing so will increase RAM, which ''may'' in turn yield benefits (or not). | You have the choice to disable these services. Doing so will increase RAM, which ''may'' in turn yield benefits (or not). | ||
[[File:Snakeoil-services.png|center|thumb|424x424px|Snakeoil - System Services]] | [[File:Snakeoil-services.png|center|thumb|424x424px|Snakeoil - System Services]] | ||
* '''SMB Windows File Sharing''': This is the file sharing protocol you used for copying files to your Snakeoil machine over the network. Turn this service off when you don't use this feature. Turn it on again when you need to copy more files over. | *'''SMB Windows File Sharing''': This is the file sharing protocol you used for copying files to your Snakeoil machine over the network. Turn this service off when you don't use this feature. Turn it on again when you need to copy more files over. | ||
* '''OpenSSH''': For remote access to your computer via putty | *'''OpenSSH''': For remote access to your computer via putty | ||
* '''Console''': For local access to your computer | *'''Console''': For local access to your computer | ||
You will not be able to gain access to your Linux OS when you disable both SSH and TTY. The only way is remote log in again is to enable either one from the web interface. You will be locked out of the system if you disable these two services and loose network connectivity. | You will not be able to gain access to your Linux OS when you disable both SSH and TTY. The only way is remote log in again is to enable either one from the web interface. You will be locked out of the system if you disable these two services and loose network connectivity. | ||
== Ubuntu Packages == | ==Ubuntu Packages== | ||
You can install additional Ubuntu packages to expand the capabilities of your Snakeoil OS. | You can install additional Ubuntu packages to expand the capabilities of your Snakeoil OS. | ||
<br /> | <br /> | ||
Line 78: | Line 78: | ||
|} | |} | ||
== cpuset == | ==cpuset== | ||
From Wikipedia. | From [[wikipedia:Processor_affinity|Wikipedia]]. | ||
<blockquote>Processor affinity, or CPU pinning, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. This can be viewed as a modification of the native central queue scheduling algorithm in a symmetric multiprocessing operating system. Each item in the queue has a tag indicating its kin processor. At the time of resource allocation, each task is allocated to its kin processor in preference to others. | <blockquote>Processor affinity, or CPU pinning, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. This can be viewed as a modification of the native central queue scheduling algorithm in a symmetric multiprocessing operating system. Each item in the queue has a tag indicating its kin processor. At the time of resource allocation, each task is allocated to its kin processor in preference to others. | ||
Line 86: | Line 86: | ||
Snakeoil OS runs a very simplistic but effective model for processor affinity: | Snakeoil OS runs a very simplistic but effective model for processor affinity: | ||
[[File:Snakeoil - cpuset.png|center|thumb|949x949px|Snakeoil - cpuset]] | |||
<br /> | |||
# Do you want to restrict your music programs to a CPU group? | #Do you want to restrict your music programs to a CPU group? | ||
#* Yes: Tick the box that says ' Isolate music player to (user), leaving everything else in (System)' | #*Yes: Tick the box that says ' Isolate music player to (user), leaving everything else in (System)' | ||
#* No.: Untick the box that says ' Isolate music player to (user), leaving everything else in (System)' | #*No.: Untick the box that says ' Isolate music player to (user), leaving everything else in (System)' | ||
# If you chose Yes above, you now get to decide which CPUs run all your music applications in one group, and everything else in another group. While this does not offer much flexibility, in most cases you should hear an improvement in audio quality. | #If you chose Yes above, you now get to decide which CPUs run all your music applications in one group, and everything else in another group. While this does not offer much flexibility, in most cases you should hear an improvement in audio quality. | ||
Make your changes, and do not forget to hit the 'Save' button at the bottom of the page for all your changes to take effect.{{ManualNavigation|[[Configuration]] | Make your changes, and do not forget to hit the 'Save' button at the bottom of the page for all your changes to take effect.{{ManualNavigation|[[Configuration]] | ||
|[[configuration/system|System]]}} | |[[configuration/system|System]]}} |
Revision as of 18:03, 19 August 2019
This tab contains a lot of experimental (unstable) features yet to make it to the public domain. Only people with a activation code can unlock this functionality (more commonly known as beta testers).
These features can be highly unstable so please try them at your own risk.
Process Priority
How various programs are executed in Linux to give you that multi-tasking ability is determined by something call a process scheduler. How it all works is beyond the scope of this manual, because it largely dependent on the technique (plus other stuffs). Suffice to say if you are using a cooperative scheduler then you can use this option to fine-tune how often a process gets "looked at" in the queue. Snakeoil kernels with RT patches are all preemptive so this option is probably useless.
Click on the "Add Process" button to add a new process. In the process name field, enter the name (or part of) of the process you wish to reassign a new priority. The prio field is the new priority level you want this process to be set to (this field is numeric only, with 1 being lowest priority, and 99 being real-time). Note that we only adjust the priority level here and not the scheduler policy. The later is really reserved for advanced users and not for general use.
Kernel Tweaks
Kernel tweaks are parameters you can specify for the boot kernel. Changing these settings will alter the behaviour of the booted kernel, and that in turn can influence the sound. These settings are experimental and the system may fail to boot, or become unstable. Please try these settings at your own risk.
Boot Kernel
You can upload kernels to your Snakeoil machine. The last uploaded kernel is always set as the default boot kernel, use this setting to override that behaviour and use a previous kernel as your default.
Clocksource
The purpose of the clock source is to provide a timeline for the system that tells you where you are in time. For example issuing the command 'date' on a Linux system will eventually read the clock source to determine exactly what time it is. The clock source shall have as high resolution as possible, and the frequency shall be as stable and correct as possible as compared to a real-world wall clock. It should not move unpredictably back and forth in time or miss a few cycles here and there.
Some common clock sources are:
- tsc - Time Stamp Counter
- hpet - High Precision Event Counter (Only if enabled in BIOS)
- acpi_pm
Boot options
These are additional command line options for the kernel. Please note these options while well tested in Linux may not be compatible with your hardware configuration. If the kernel fails to boot you'd need to manually modify the boot up options from the console to recover.
Options | Description |
---|---|
none | No special boot parameters |
acpi=noirq | Do not use ACPI for IRQ routing or for PCI scanning |
acpi=ht | Disable all ACPI functions, except what is required for hyper threading |
noapic | Tells the kernel to not make use of any IOAPICs that may be present in the system. |
pnpacpi | Not sure what this does - does it turns on Plug N Play ACPI, or off? |
nolapic | Do not enable or use the local APIC. |
Music Software
Use this to install/uninstall software easily. Uninstall anything you don't need to reduce clutter, or install new players as they come.
System Services
You have the choice to disable these services. Doing so will increase RAM, which may in turn yield benefits (or not).
- SMB Windows File Sharing: This is the file sharing protocol you used for copying files to your Snakeoil machine over the network. Turn this service off when you don't use this feature. Turn it on again when you need to copy more files over.
- OpenSSH: For remote access to your computer via putty
- Console: For local access to your computer
You will not be able to gain access to your Linux OS when you disable both SSH and TTY. The only way is remote log in again is to enable either one from the web interface. You will be locked out of the system if you disable these two services and loose network connectivity.
Ubuntu Packages
You can install additional Ubuntu packages to expand the capabilities of your Snakeoil OS.
Ubuntu Package | Description |
---|---|
cpuset | Install this package to and you can assign individual programs are run on your multi-CPU computer. See next section on cpuset for more information. |
exFAT filesystem | exFAT (Extended File Allocation Table) is a Microsoft file system introduced in 2006 optimized for flash memory such as USB flash drives and SD cards. Install this package and you can mount any media formatted with this format. |
cpuset
From Wikipedia.
Processor affinity, or CPU pinning, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. This can be viewed as a modification of the native central queue scheduling algorithm in a symmetric multiprocessing operating system. Each item in the queue has a tag indicating its kin processor. At the time of resource allocation, each task is allocated to its kin processor in preference to others.
Processor affinity takes advantage of the fact that remnants of a process that was run on a given processor may remain in that processor's state (for example, data in the cache memory) after another process was run on that processor. Scheduling that process to execute on the same processor improves its performance by reducing performance-degrading events such as cache misses. A practical example of processor affinity is executing multiple instances of a non-threaded application, such as some graphics-rendering software.
Snakeoil OS runs a very simplistic but effective model for processor affinity:
- Do you want to restrict your music programs to a CPU group?
- Yes: Tick the box that says ' Isolate music player to (user), leaving everything else in (System)'
- No.: Untick the box that says ' Isolate music player to (user), leaving everything else in (System)'
- If you chose Yes above, you now get to decide which CPUs run all your music applications in one group, and everything else in another group. While this does not offer much flexibility, in most cases you should hear an improvement in audio quality.
Make your changes, and do not forget to hit the 'Save' button at the bottom of the page for all your changes to take effect.