Difference between revisions of "Repo-ck"

From ArchWiki
Jump to: navigation, search
(Selectively (for only specified devices))
Line 174: Line 174:
  
 
=== Selectively (for only specified devices) ===
 
=== Selectively (for only specified devices) ===
 +
{{Note|Users building the PKG from the AUR have an option in the PKGBUILD itself to globally use the BFQ as the default I/O scheduler.}}
 +
 
Direct the kernel to use it on a device-by-device basis.  For example, to enable it for {{ic|/dev/sda}} simply:
 
Direct the kernel to use it on a device-by-device basis.  For example, to enable it for {{ic|/dev/sda}} simply:
 
  # echo bfq > /sys/block/sda/queue/scheduler
 
  # echo bfq > /sys/block/sda/queue/scheduler
Line 181: Line 183:
 
  noop deadline cfq [bfq]  
 
  noop deadline cfq [bfq]  
  
Note that doing it this way will not survive a reboot.  To make the change automatically at the next system boot, place the echo line(s) in {{ic|/etc/rc.local}}
+
Setting this way will not survive a reboot.  To make the change automatically at the next system boot, create the following service:
  
{{Note|Users building the PKG from the AUR have an option in the PKGBUILD itself to globally use the BFQ as the default I/O scheduler.}}
+
{{hc| /etc/tmpfiles.d/set_IO_scheduler.conf |<nowiki>
 +
w /sys/block/sda/queue/scheduler - - - - noop
 +
</nowiki>}}
  
 
== Package Trivia/Repo Statistics ==
 
== Package Trivia/Repo Statistics ==

Revision as of 16:45, 17 November 2012

Summary help replacing me

Article details setup and usage of the an unofficial Arch Linux repo containing generic and CPU-optimized kernel and support packages containing the ck1 patchset featuring the Brain Fuck Scheduler by Con Kolivas.

Related
Linux-ck - Main article.
Linux-ck/Changelog - Linux-ck Changelog.
[Repo Statistics] - Popularity of packages, # of downloads, etc.

TL; DR Summary

Packages Provided:

CPU-Optimized Flavors:

  • Generic - Any x86_64 or i686 CPU.
  • Corex - Optimized pacakges for Intel C2D/C2Q/Core i3/i5/i7 CPUs.
  • Kx - Optimized packages for AMD K7/K8/K10 CPUs.
  • P4 - Optimized packages for Intel Pentium 4 CPUs.
  • Pentm - Optimized packages for Intel Pentium-M CPUs.

Setup: See the Repo-ck#Setup section below to enable and use the repo.

Details

The repo contains generic packages as well as CPU-specific packages. Many ARCH users are familiar with the concept of a generic kernel package. The official ARCH kernel is available in two flavors (either i686 or x86_64) which are generic packages in that i686 will work with any compatible x86 CPU and x86_64 will work with any compatible x86_64 CPU.

Users have a choice between the corresponding generic linux-ck packages or CPU-specific and optimized linux-ck packages:

GENERIC

  • ck-generic ==> Compiled with generic optimizations suitable for any compatible CPU just like the official ARCH linux package. This is true for both Intel and AMD processors.

CPU SPECIFIC AND OPTIMIZED

  • ck-atom ==> Intel Atom platform specific optimizations. Intel Atom CPUs have an in-order pipelining architecture and thus can benefit from accordingly optimized code.
  • ck-corex ==> Intel Core 2-family including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2) and Core i3/i5/i7-family specific optimizations (Gulftown, Bloomfield, Lynnfield, Clarksfield, Arrendale, and Sandy/Ivybridge CPUs).
  • ck-kx ==> AMD K7 (Athlon/Athlon XP)/K8 (Athlon 64, Athlon 64 X2, 23xx Quad-Core Barcelona, Sempron, Sempron 64)/K10-family (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II X2/X3/X4, Sempron 64 (Socket AM3 only), 61xx Eight-Core Magny-Cours) specific optimizations. Enables use of some extended instructions, and passes appropriate optimization flags to GCC.
  • ck-p4 ==> Intel Pentium-4 specific optimizations (P4/P4-based Celeron/Pentium-4 M/Older Xeon).
  • ck-pentm ==> Intel Pentium-M specific optimizations (Pentium-M notebook chips/not Pentium-4 M).

CPU-specific optimization are invoked at compilation by selecting the corresponding option under Processor type and features>Processor family or by setting-up the .config file accordingly. These changes setup make specific gcc options including the $CFLAGS. For more, see the following files:

Note: Repo packages include the BFQ I/O Scheduler compiled as a module. Read the section below for instructions to load it and enable it should you wish to do so.

[Graysky's public key] used for package signing. Pacman v4 will automatically query the public key server, but if users would rather download and manually add the key, do so from the link.

Setup

1) Add the following to /etc/pacman.conf (I placed my entry at the bottom of the file):

[repo-ck]
SigLevel = PackageRequired
Server = http://repo-ck.com/$arch

To sign graysky's key, do the following:

# pacman-key -r 6176ED4B
# pacman-key --lsign-key 6176ED4B

2) Refresh via pacman -Syy

That's it. To see the contents of the repo, just search as such:

$ pacman -Sl repo-ck

Installation Examples

Use the ck-X group and select the desired packages for installation. There are 6 groups corresponding to the 6 package sets: ck-generic, ck-atom, ck-corex, ck-kx, ck-p4, and ck-pentm.

# pacman -S ck-generic
:: There are 6 members in group ck-generic:
:: Repository repo-ck
   1) broadcom-wl-ck  2) linux-ck  3) linux-ck-headers  4) nvidia-ck  5) virtualbox-ck-guest-modules
   6) virtualbox-ck-host-modules

Enter a selection (default=all):

Alternatively, simply direct pacman to install the packages directly:

# pacman -S linux-ck linux-ck-headers

Current CK Package Offerings

linux-ck and headers Group x86_64 i686 Processor Family Specific Optimizations/Description
linux-ck ck-generic Yes Yes Compiled with generic optimizations suitable for any compatible CPU just like the official ARCH linux package.
linux-ck-atom ck-atom Yes Yes Intel Atom platform specific optimizations.
linux-ck-corex ck-corex Yes Yes Intel Core X-family specific optimizations including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2) as well as Intel Core i3/i5/i7.
linux-ck-kx ck-kx Yes Yes AMD K7 (Athlon/Athlon XP), K8 (Athlon 64, Athlon 64 X2, 23xx Quad-Core Barcelona, Sempron, Sempron 64), and K10-family (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II X2/X3/X4, Sempron 64 (Socket AM3 only), 61xx Eight-Core Magny-Cours) specific optimizations.
linux-ck-p4 ck-p4 Yes Yes Intel Pentium-4 specific optimizations (P4/P4-based Celeron/Pentium-4 M/Older Xeon).
linux-ck-pentm ck-pentm N/A Yes Intel Pentium-M specific optimizations (Pentium-M notebook chips/not Pentium-4 M).
Nvidia-ck Module Group x86_64 i686 Description
nvidia-ck ck-generic Yes Yes The matching nVidia kernel module based on 310.xx series of Official nVidia drivers for linux-ck.
nvidia-ck-atom ck-atom Yes Yes
nvidia-ck-corex ck-corex Yes Yes
nvidia-ck-kx ck-kx Yes Yes
nvidia-ck-p4 ck-p4 Yes Yes
nvidia-ck-pentm ck-pentm N/A Yes
Nvidia-304xx-ck Module Group x86_64 i686 Description
nvidia-304xx-ck ck-generic Yes Yes The matching nVidia legacy kernel module based on 304.xx series of Official nVidia drivers for linux-ck.
nvidia-304xx-ck-atom ck-atom Yes Yes
nvidia-304xx-ck-corex ck-corex Yes Yes
nvidia-304xx-ck-kx ck-kx Yes Yes
nvidia-304xx-ck-p4 ck-p4 Yes Yes
nvidia-304xx-ck-pentm ck-pentm N/A Yes
Broadcom-wl-ck Module Group x86_64 i686 Description
broadcom-wl-ck ck-generic Yes Yes The matching Broadcom-wl-ck kernel module for linux-ck.
broadcom-wl-ck-atom ck-atom Yes Yes
broadcom-wl-ck-corex ck-corex Yes Yes
broadcom-wl-ck-kx ck-kx Yes Yes
broadcom-wl-ck-p4 ck-p4 Yes Yes
broadcom-wl-ck-pentm ck-pentm N/A Yes
Virtualbox-ck-modules (guest and host) Group x86_64 i686 Description
virtualbox-ck-guest-modules and virtualbox-ck-host-modules ck-generic Yes Yes The matching virtualbox guest and hosts kernel modules for linux-ck.
virtualbox-ck-guest-modules-atom and virtualbox-ck-host-modules-atom ck-atom Yes Yes
virtualbox-ck-guest-modules-corex and virtualbox-ck-host-modules-corex ck-corex Yes Yes
virtualbox-ck-guest-modules-kx and virtualbox-ck-host-modules-kx ck-kx Yes Yes
virtualbox-ck-guest-modules-p4 and virtualbox-ck-host-modules-p4 ck-p4 Yes Yes
virtualbox-ck-guest-modules-pentm and virtualbox-ck-host-modules-pentm ck-pentm N/A Yes

N/A = Not Available due to hardware limitations.

How to Enable the BFQ I/O Scheduler

Since release 3.0.4-2, the BFQ patchset is applied to the package by default. Users must enable the BFQ scheduler to use it; it is dormant by default.

Globally (for all devices)

Add elevator=bfq to boot loader Kernel parameters.

Selectively (for only specified devices)

Note: Users building the PKG from the AUR have an option in the PKGBUILD itself to globally use the BFQ as the default I/O scheduler.

Direct the kernel to use it on a device-by-device basis. For example, to enable it for /dev/sda simply:

# echo bfq > /sys/block/sda/queue/scheduler

To confirm, simply cat the same file:

# cat /sys/block/sda/queue/scheduler
noop deadline cfq [bfq] 

Setting this way will not survive a reboot. To make the change automatically at the next system boot, create the following service:

 /etc/tmpfiles.d/set_IO_scheduler.conf 
w /sys/block/sda/queue/scheduler - - - - noop

Package Trivia/Repo Statistics

  • Various package sets are compiled via a Bash wrapper script for makepkg. The script is publicly accessible at graysky's github repo.
  • Repo statistics are available (popularity of packages, which CPU is most popular, # of downloads, etc.).
Note: The statistics are not updated daily but do give a snapshot of the data.

Troubleshooting

Forum Support

Please use this discussion thread to voice comments, questions, suggestions, requests, etc. Note from graysky, "I can add other CPU-specific builds upon request. I just wanna be sure people will actually use them if I take the time to compile them."