Nexus Sのstock kernelは2.6.35なので、これに対応するpatchをダウンロードしておく
http://algo.ing.unimo.it/people/paolo/disk_sched/mbox形式のpatchなので、git amで当てる。configもやり直すので、distcleanしておくといい。
cd samsung make distclean ARCH=arm git am ../bfq_patch/0001-bfq_iosched-block-prepare_IO_context_code-2.6.35-v1-r1.patch git am ../bfq_patch/0002-bfq_iosched-block-add_cgroups_kconfig_and_build_bits-2.6.35-v1-r1.patch git am ../bfq_patch/0003-bfq_iosched-block-introduce_BFQ-2.6.35-v1-r1.patch configをやり直す make herring_defconfig ARCH=arm make menuconfig ARCH=arm (TUN/TAPを有効にしたりしておく) デフォルトのIO schedulerをBFQにするために Enable the block layer => IO Schedulers => BFQ I/O Scheduler に* 出現するオプションも*いれておく。 その後 Default I/O scheduler で BFQを選択してExitしていく。 よければbuild make -j2 ARCH=arm CROSS_COMPILE=/home/somewhere/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- mkbootimg .... ..いつものように、fastbootモードにしてお試し起動してチェックしてみること。
adb reboot bootloader
fastboot boot myboot.img
デフォルトが変更されていたらOK。
dmesg | grep scheduler
<6>[ 0.377504] io scheduler noop registered
<6>[ 0.377640] io scheduler deadline registered
<6>[ 0.377762] io scheduler cfq registered
<6>[ 0.377960] io scheduler bfq registered (default)
動的にI/Oスケジューラを変更するには、おそらく下記の作業で行けるはず(未検証)
cd /sys/devices/platform/s3c-sdhci.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/queue echo cfq > scheduler cat scheduler noop deadline [cfq] bfq
追記:
git amでpatchを適用するとcommitも反映されるので、kernelのバージョンマジックが変わるようです。
モジュールなどは全部コンパイルし直して入れ直しましょう。
0 コメント:
コメントを投稿