Marcus Nguyen Posted February 3, 2020 Share Posted February 3, 2020 Hi everyone, As the title, I would like to set the isolated cpu 3th on orange pi zero (armbian v4.19.62) I've try to follow this answer of ChrisK in the topic here And the boot.cmd file after edited as below: # DO NOT EDIT THIS FILE # # Please edit /boot/armbianEnv.txt to set supported parameters # setenv load_addr "0x44000000" setenv overlay_error "false" # default values setenv verbosity "1" setenv console "both" setenv disp_mem_reserves "off" setenv disp_mode "1920x1080p60" setenv rootfstype "ext4" setenv docker_optimizations "on" setenv devnum "0" setenv rootdev "/dev/mmcblk${devnum}p1" setenv bootargs console=ttyS0,115200 noinitrd root=/dev/mmcblk0p2 rootfstype=ext4 rootwait isolcpus=3 # Print boot source itest.b *0x28 == 0x00 && echo "U-boot loaded from SD" itest.b *0x28 == 0x02 && echo "U-boot loaded from eMMC or secondary SD" itest.b *0x28 == 0x03 && echo "U-boot loaded from SPI" # get PARTUUID of first partition on SD/eMMC it was loaded from # mmc 0 is always mapped to device u-boot (2016.09+) was loaded from if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; setenv devnum ${mmc_bootdev} setenv rootdev "/dev/mmcblk${mmc_bootdev}p1" fi echo "Boot script loaded from ${devtype}" if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt env import -t ${load_addr} ${filesize} fi if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} hdmi.audio=EDID:0 disp.screen0_output_mode=${disp_mode} panic=10 consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" if test "${disp_mem_reserves}" = "off"; then setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"; fi if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage if test -e ${devtype} ${devnum} "${prefix}.next"; then echo "Found mainline kernel configuration" load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" fdt apply ${load_addr} || setenv overlay_error "true" fi done for overlay_file in ${user_overlays}; do if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then echo "Applying user provided DT overlay ${overlay_file}.dtbo" fdt apply ${load_addr} || setenv overlay_error "true" fi done if test "${overlay_error}" = "true"; then echo "Error applying DT overlays, restoring original DT" load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} else if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" source ${load_addr} fi if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr echo "Applying user provided fixup script (fixup.scr)" source ${load_addr} fi fi bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} else echo "Found legacy kernel configuration" load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}script.bin bootz ${kernel_addr_r} ${ramdisk_addr_r} fi # Recompile with: # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr However, it seem to be not successful. I need to set isolated cpu to improve the performance of my module. Thank for kind help! Link to comment Share on other sites More sharing options...
0 dolphs Posted February 3, 2020 Share Posted February 3, 2020 not entirely sure if this is what you are looking for? ps axf | grep <your process> | grep -v grep | awk '{print "taskset -cp 3 " $1}' | sh #where cp 3 is core 4 (0-4) Link to comment Share on other sites More sharing options...
0 Marcus Nguyen Posted February 3, 2020 Author Share Posted February 3, 2020 15 minutes ago, dolphs said: not entirely sure if this is what you are looking for? ps axf | grep <your process> | grep -v grep | awk '{print "taskset -cp 3 " $1}' | sh #where cp 3 is core 4 (0-4) This is action which set a module using a isolated cpu. I need to set the cpu which should be isolated first Link to comment Share on other sites More sharing options...
0 yoq Posted February 10, 2020 Share Posted February 10, 2020 You can free up a core using isolcpus kernel parameter and then move your task on the unused core using taskset: simply set it by adding extraargs=isolcpus=1 to your /boot/armbianEnv.txthttps://codywu2010.wordpress.com/2015/09/27/isolcpus-numactl-and-taskset/ 1 Link to comment Share on other sites More sharing options...
Question
Marcus Nguyen
Hi everyone,
As the title, I would like to set the isolated cpu 3th on orange pi zero (armbian v4.19.62)
I've try to follow this answer of ChrisK in the topic here
And the boot.cmd file after edited as below:
However, it seem to be not successful. I need to set isolated cpu to improve the performance of my module.
Thank for kind help!
Link to comment
Share on other sites
3 answers to this question
Recommended Posts