Part 3. Configure gNB Server
To install the Aerial tools follow the cuBB installation guide.
The ARC-OTA thread to core assignment functionality has been improved. The L1 related threads, that need to isolate cores in a monolithic block, were moved and the rest are left to OAI L2+ to use. Core 2-6 are used for cuPHY workers cores. Core 7 is used for cuPHY lowprio thread. Core 8 is used for the cuPHY timer thread and core 9 for PTP and PHC2SYS.
To set kernel command-line parameters, edit the GRUB_CMDLINE_LINUX_DEFAULT
parameter in the grub
file /etc/default/grub
andmodify the following parameters.
The following kernel parameters are optimized for the Aerial DevKit with 24 cores Xeon Gold 6240R and 96GB memory. For ARC-OTA, typically it is optimal to configure the gNB to isolate core 2 to 10 for Aerial, and leave the other cores for use by OAI L2+.
To automatically append the grub file with these changes, enter this command:
$ sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll isolcpus=2-10 rcu_nocb_poll nosoftlockup iommu=off intel_iommu=off irqaffinity=0-1,22-23/' /etc/default/grub
$ sudo update-grub
$ sudo reboot
After rebooting, enter the following command to check whether the system has booted into the low-latency kernel:
$ uname -r
5.15.0-1042-nvidia-lowlatency
Enter this command to check that the kernel command-line parameters are configured properly:
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-5.15.0-72-lowlatency root=/dev/mapper/ubuntu--vg-ubuntu--lv ro default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll isolcpus=2-10 rcu_nocb_poll nosoftlockup iommu=off intel_iommu=off irqaffinity=0-1,22-23
Edit /lib/systemd/system/ptp4l.service:
ExecStart=taskset -c 9 /usr/sbin/ptp4l -f /etc/ptp.conf
Edit /lib/systemd/system/phc2sys.service:
ExecStart=/bin/sh -c "taskset -c 9 /usr/sbin/phc2sys -s /dev/ptp$(ethtool -T ens6f0 | grep PTP | awk '{print $4}')-c CLOCK_REALTIME -n 24 -O 0 -R 256 -u 256"