SlideShare a Scribd company logo
1 of 49
Download to read offline
FreeBSD on Cavium ThunderX
System on a Chip
Zbigniew Bodek
zbb@semihalf.com, zbb@freebsd.org
Wojciech Macek
wma@semihalf.com, wma@freebsd.org
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
ARMv8 as a 64­bit successor
FreeBSD on Cavium ThunderX SoC
➔ What is a gain in moving to 64­bit ARMs?
➔ Much larger virtual and physical address space 
ARMv8 as a 64­bit successor
FreeBSD on Cavium ThunderX SoC
➔ What is a gain in moving to 64­bit ARMs?
➔ Twice as much data in each register
x0 x1 x2 x3 x4 x5 x6 x7
x8 x9 x10 x11 x12 x13 x14 x15
x16 x17 x18 x19 x20 x21 x22 x23
x24 x25 x26 x27 x28 x29 x30
(LR)
xzr
SP PC
ARMv8 as a 64­bit successor
FreeBSD on Cavium ThunderX SoC
➔ What is a gain in moving to 64­bit ARMs?
➔ Much more CPUs in the system
8                                  96
ARMv8 as a 64­bit successor
FreeBSD on Cavium ThunderX SoC
➔ What is a gain in moving to 64­bit ARMs?
➔ New instruction set (aarch64)
➔ Clear design (Exception Levels)
➔ Cryptographic instructions (AES, SHA­1, SHA­256)
➔ Mandatory VFP and NEON
➔ Backward compatibility with 32­bit application in 32­bit 
mode
➔ New, standardized components (PSCI, SMMU)
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Cavium ThunderX
FreeBSD on Cavium ThunderX SoC
➔ 48 ThunderX ARMv8 CPUs 
(per chip)
➔ Fully coherent in respect to 
L1, L2 and DMA
➔ Virtualization
➔ PCIe3.0­centric
➔ GIC + ITS interrupt handling
➔ Up to 1TB of RAM
➔ 1/10/20/40 GbE
➔ SATA 3.0
➔ USB 3.0
Cavium ThunderX
FreeBSD on Cavium ThunderX SoC
ThunderX EVB with 48­core CPU (early prototype)
Cavium ThunderX
FreeBSD on Cavium ThunderX SoC
ThunderX dual­socket CRB with 96­core CPU (server chassis form­factor)
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Initial FreeBSD state
FreeBSD on Cavium ThunderX SoC
➔ What was claimed to be working
➔ Build tools (toolchain, etc.)
➔ Load and boot the kernel
➔ Start code (prepare C environment)
➔ Low­level initialization
➔ VM support
➔ Exception handling
➔ Userland (libs, syscalls, context switching and so on...)
➔ What was known to be missing
➔ Interrupt controller, GICv3+ITS
➔ ThunderX specific drivers
Initial FreeBSD state
FreeBSD on Cavium ThunderX SoC
➔ What was actually working
➔ Build tools (toolchain, etc.)
➔ Load and boot the kernel    [BUGS]
➔ Start code (prepare C environment)   [BUGS]
➔ Low­level initialization   [BUGS]
➔ VM support  [BUGS]
➔ Exception handling   [BUGS]
➔ Userland (libs, syscalls, context switching and so on...)  [BUGS]
➔ What was known to be missing
➔ Interrupt controller, GICv3+ITS
➔ ThunderX specific drivers
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Bugs, bugs, and... bugs
FreeBSD on Cavium ThunderX SoC
➔ The source of bugs
➔ Switch from a simulator to a real hardware
➔ Cache, pipeline influence
➔ Realistic timings
➔ Race conditions
➔ Platform
➔ Hardware imperfections (erratas)
➔ Many­core impact
➔ Human errors
➔ Off­by­one errors
➔ Overflows
➔ Other
➔ Missing bits / genuine bugs
Bugs, bugs, and... bugs
FreeBSD on Cavium ThunderX SoC
➔ Example 1
 /* Restore elr and spsr */
 ldp x0, x1, [sp, #16] /* load pair from */
 msr elr_el1, x0
 msr spsr_el1, x1
 (…)
 eret /* return from exception to elr_el1 with PSR
         from spsr_el1 */
IRQ here overwrites SPSR
Bugs, bugs, and... bugs
FreeBSD on Cavium ThunderX SoC
➔ Example 1
 msr daifset, #2 /* Lock interrupts */
 /* Restore elr and spsr */
 ldp x0, x1, [sp, #16] /* load pair from */
 msr elr_el1, x0
 msr spsr_el1, x1
 (…)
 eret /* return from exception to elr_el1 with PSR
         from spsr_el1 */
Bugs, bugs, and... bugs
FreeBSD on Cavium ThunderX SoC
➔ Example 2
https://community.arm.com/groups/processo
rs/blog/2016/03/11/semihalf­arm­blog­2­de
ad­board­and­stack­growth
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ SMP
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
➔ Improvements in GICv3
➔ Three components:
➔ Distributor
➔ Re­Distributor
➔ CPU Interfaces
➔ Affinity­based routing (Aff3:Aff2:Aff1:Aff0, domain:socket:cluster:core)
➔ MSI/MSI­x support with ITS assist
➔ Support for a huge number of interrupts (2^32 ­ 1)
➔ Auto­configuration capabilities
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
➔ Responsibilities of GICv3 (Re­Distributor, Distributor):
➔ Manage PPIs and SGIs through Re­Distributors
➔ Handle legacy interrupts from devices through Distributor
➔ Send and receive IPIs based on CPU affinity address
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
➔ Interrupt flow chart
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
➔ Responsibilities of Interrupts Translation Service:
➔ Add new interrupt class to GIC, LPI – Locality­specific Peripheral 
Interrupts
➔ Provide a way for devices to trigger message­signaled interrupts
➔ Translate MSI DEV_ID&MSI_ID to an appropriate IRQ number
➔ Pass translated interrupts directly to Re­Distributor based on set up 
affinity
➔ Advantages of new approach:
➔ Standardized way to handle MSI/MSI­x
➔ Great flexibility in interrupt management
➔ Drastically increase in total MSI/MSI­x number
GICv3 + Interrupt Translation Service
FreeBSD on Cavium ThunderX SoC
➔ Setting up MSI­x (LPI) interrupt for a PCIe device
1.Map interrupt collection to a Re­Distributor
2.Allocate and map Interrupt Translation Table for a PCIe device)
3.Reserve a range of LPIs (these numbers must be unique in the system)
4.Map DEV_ID and MSI vector (i.e. memory address where the write 
issued by device triggers interrupt) to an appropriate collection and LPI
➔ Cons:
➔ Complex logic, difficult to program
➔ Slow and complicated configuration of LPI interrupts
➔ Pros:
➔ Easy to use when programmed
➔ Does not need to occupy SPIs
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
PCI express
FreeBSD on Cavium ThunderX SoC
➔ ThunderX PCI­based architecture
➔ All on­chip devices are connected through internal PCIe bus
➔ More than 200 PCIe endpoints on internal bus
➔ ECAM configuration space (i.e. generic)
➔ Flexibility of design
➔ No DTS or ACPI is required, enumeration done using PCI 
standard
➔ All components can be reused in next chip revisions
➔ Message Signaled interrupts
PCI express
FreeBSD on Cavium ThunderX SoC
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
VNIC
FreeBSD on Cavium ThunderX SoC
➔ Virtualized NIC features:
➔ 1/10/20/40 Gbps Ethernet
➔ Partitioning:
➔ Programmable MAC layer (BGX)
➔ Network Interface Controller (NIC)
➔ Traffic Network Switch (TNS), unused
VNIC
FreeBSD on Cavium ThunderX SoC
➔ Virtualized NIC internals:
NIC partitioning on ThunderX
2x BGX
4x LMAC each
Max 10Gbps per LMAC
128x VNIC
VNIC
FreeBSD on Cavium ThunderX SoC
➔ BGX functions:
➔ Ordinary PCIe device on internal PCIe bus
➔ Two instances in a chip offering 4xLMACs each
➔ LMAC can be connected to the arbitrary VNIC
➔ Polling PHYs for link status
VNIC
FreeBSD on Cavium ThunderX SoC
➔ NIC, Physical Function:
➔ Does not offer network capabilities! ­ Resource Manager 
only.
➔ Can create up to 128 Virtual Functions (VNICs) using     
SR­IOV
➔ Provides interface to PHYs via BGX.
➔ Can communicate with its Virtual Functions using Mailboxes
VNIC
FreeBSD on Cavium ThunderX SoC
➔ NIC, Virtual Function:
➔ Can be a fully functional network adapter, or:
➔ Contains set of queues (Q­Set)
➔ 8x RQ – Receive Queue
➔ 8x SQ – Send Queue
➔ 8x CQ – Completion Queue
➔ 2x RBDR – Receive Buffer Ring
➔ Can be only a container to add more Q­Sets to another VF 
– networking functions are disabled for this VF then
Q-Set
VNIC
FreeBSD on Cavium ThunderX SoC
➔ Example:
➔ VF0 offers networking 
functionality
➔ VF1 used for extending 
resources for VF0
➔ TX:
➔ SQ used to enqueue packets
➔ CQ signals when packet is 
sent
➔ RX:
➔ RQ writes to CQ when packet 
is received
➔ Driver can read descriptor and 
know the source RQ number
➔ Many­to­one
➔ Both CQ and RBDR can store 
events from more than one 
SQ/RQ
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ SMP
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Current state and future work
FreeBSD on Cavium ThunderX SoC
➔ Done:
➔ Single socket ThunderX is working on HEAD
➔ All IO interfaces are supported with good performance
➔ System is considered stable
➔ TODO:
➔ Multicore scalability (generic FreeBSD issue)
➔ Crypto support
➔ Secondary ITS (required for 2S)
➔ Dual socket support
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ SMP
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
Performance measurements
FreeBSD on Cavium ThunderX SoC
➔ Test1 ­ iperf3:
➔ Using iperf3 and 40Gb Direct­attached­copper link
➔ Tested Intel vs ThunderX, FreeBSD vs Linux 
➔ Using 4 instances of iperf3, with 1 to 4 TCP streams per 
instance
➔ Setup 1:
➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD, 40Gb VNIC
➔ Setup 2:
➔ Intel Xeon E5­2603v3 @ 1.6GHz, 6CPU, Mellanox 
ConnectX­3 40Gb, FreeBSD HEAD
➔ Setup 3:
➔ Intel Xeon E5­2603v3 @ 1.6Ghz, 6CPU, Mellanox 
ConnectX­3 40Gb, Ubuntu Linux, kernel 4.2
Performance measurements
FreeBSD on Cavium ThunderX SoC
Performance measurements
FreeBSD on Cavium ThunderX SoC
➔ Test2 ­ Nginx:
➔ Using Nginx to serve memory­stored files using HTTP
➔ Throughput is measured versus number of Nginx threads
➔ Setup 1:
➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD, 40Gb VNIC
➔ Setup 2:
➔ ThunderX @ 1.8GHz, 48CPU, Ubuntu, kernel 4.2, 40Gb 
VNIC
Performance measurements
FreeBSD on Cavium ThunderX SoC
Performance measurements
FreeBSD on Cavium ThunderX SoC
➔ Test3 ­ AIO:
➔ Using fio to benchmark block device performance
➔ Tested with 3 SSDs, each capable of 50kIOPS@4k
➔ Setup 1:
➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD
➔ Setup 2:
➔ ThunderX @ 1.8GHz, 48CPU, Ubuntu, kernel 4.2
Performance measurements
FreeBSD on Cavium ThunderX SoC
Presentation outline
FreeBSD on Cavium ThunderX SoC
➔ Hardware platform
➔ ARMv8 as a 64­bit successor
➔ Cavium ThunderX
➔ Porting to ThunderX
➔ Initial FreeBSD state
➔ Bugs, bugs and... bugs
➔ On­chip peripherals support
➔ GICv3 + ITS
➔ SMP
➔ PCIe
➔ VNIC
➔ Current state & future work
➔ Performance measurements
➔ Q&A 
References
FreeBSD on Cavium ThunderX SoC
➔ https://wiki.freebsd.org/arm64 
➔ https://community.arm.com/groups/processors/blog/2015/11
/03/semihalfs­arm64­blog­1­the­freebsd­on­the­96­cpu­arm
v8­soc
 
➔ https://community.arm.com/groups/processors/blog/2016/03
/11/semihalf­arm­blog­2­dead­board­and­stack­growth
 
➔ https://www.youtube.com/watch?v=1q5aDEt18mw 
Acknowledgements
FreeBSD on Cavium ThunderX SoC
➔ Special thanks go to:
➔ Dominik Ermel, Michał Mazur, Tomasz Nowicki, Michał 
Stanek (all Semihalf)
➔ Ed Maste (The FreeBSD Foundation), Andrew Wafaa 
(ARM), Larry Wikelius (Cavium) for the successful 
cooperation.
➔ Andrew Turner (FreeBSD Project) for insightful reviews and 
advice.
➔ Rafał Jaworowski (Semihalf) for organizing and managing 
this project.
This project was sponsored by ARM, Cavium, The 
FreeBSD Foundation and Semihalf.
Q&A
FreeBSD on Cavium ThunderX SoC
Any questions?

More Related Content

What's hot

Playing CTFs for Fun & Profit
Playing CTFs for Fun & ProfitPlaying CTFs for Fun & Profit
Playing CTFs for Fun & Profitimpdefined
 
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...CODE BLUE
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation Jiann-Fuh Liaw
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerJeff Anderson
 
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...CODE BLUE
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitJiahong Fang
 
09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?Alexandre Moneger
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)Alexandre Moneger
 
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...sonjeku1
 
Richard wartell malware is hard. let's go shopping!!
Richard wartell   malware is hard.  let's go shopping!!Richard wartell   malware is hard.  let's go shopping!!
Richard wartell malware is hard. let's go shopping!!Shakacon
 
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMU
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMUSFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMU
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMULinaro
 
Intel Nervana Graph とは?
Intel Nervana Graph とは?Intel Nervana Graph とは?
Intel Nervana Graph とは?Mr. Vengineer
 
Hands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaHands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaKiwamu Okabe
 
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...CODE BLUE
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Sam Kim
 
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)Sam Kim
 
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik OpcodesCODE BLUE
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composerwonyong hwang
 
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru Otsuka
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru OtsukaTake a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru Otsuka
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru OtsukaCODE BLUE
 

What's hot (20)

Playing CTFs for Fun & Profit
Playing CTFs for Fun & ProfitPlaying CTFs for Fun & Profit
Playing CTFs for Fun & Profit
 
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...
For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by...
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
 
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One Exploit
 
09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)
 
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...
us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-La...
 
Richard wartell malware is hard. let's go shopping!!
Richard wartell   malware is hard.  let's go shopping!!Richard wartell   malware is hard.  let's go shopping!!
Richard wartell malware is hard. let's go shopping!!
 
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMU
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMUSFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMU
SFO15-202: Towards Multi-Threaded Tiny Code Generator (TCG) in QEMU
 
Intel Nervana Graph とは?
Intel Nervana Graph とは?Intel Nervana Graph とは?
Intel Nervana Graph とは?
 
Hands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaHands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ Nagoya
 
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1
 
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
 
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composer
 
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru Otsuka
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru OtsukaTake a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru Otsuka
Take a Jailbreak -Stunning Guards for iOS Jailbreak- by Kaoru Otsuka
 

Similar to FreeBSD on Cavium ThunderX System on a Chip

Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersYury Chemerkin
 
FreeBSD Document Project
FreeBSD Document ProjectFreeBSD Document Project
FreeBSD Document ProjectChinsan Huang
 
The History and Future of Core Dumps in FreeBSD
The History and Future of Core Dumps in FreeBSDThe History and Future of Core Dumps in FreeBSD
The History and Future of Core Dumps in FreeBSDSam Gwydir
 
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stablejuet-y
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?Pradeep Kumar
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDocker, Inc.
 
WebCodecs in WebKit With GStreamer!
WebCodecs in WebKit With GStreamer!WebCodecs in WebKit With GStreamer!
WebCodecs in WebKit With GStreamer!Igalia
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planKiwamu Okabe
 
Corpus collapsum: Partition tolerance of Galera in a noisy high load environment
Corpus collapsum: Partition tolerance of Galera in a noisy high load environmentCorpus collapsum: Partition tolerance of Galera in a noisy high load environment
Corpus collapsum: Partition tolerance of Galera in a noisy high load environmentRaghavendra Prabhu
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfkanedafromparis
 
JomaSoft VDCF - Solaris Private Cloud
JomaSoft VDCF - Solaris Private CloudJomaSoft VDCF - Solaris Private Cloud
JomaSoft VDCF - Solaris Private CloudJomaSoft
 
You're Off the Hook: Blinding Security Software
You're Off the Hook: Blinding Security SoftwareYou're Off the Hook: Blinding Security Software
You're Off the Hook: Blinding Security SoftwareCylance
 
Cross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste DaroussinCross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste Daroussineurobsdcon
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
LF_DPDK17_DPDK support for new hardware offloads
LF_DPDK17_DPDK support for new hardware offloadsLF_DPDK17_DPDK support for new hardware offloads
LF_DPDK17_DPDK support for new hardware offloadsLF_DPDK
 

Similar to FreeBSD on Cavium ThunderX System on a Chip (20)

Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
 
FreeBSD Document Project
FreeBSD Document ProjectFreeBSD Document Project
FreeBSD Document Project
 
The History and Future of Core Dumps in FreeBSD
The History and Future of Core Dumps in FreeBSDThe History and Future of Core Dumps in FreeBSD
The History and Future of Core Dumps in FreeBSD
 
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
 
Top ESXi command line v2.0
Top ESXi command line v2.0Top ESXi command line v2.0
Top ESXi command line v2.0
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker Captains
 
WebCodecs in WebKit With GStreamer!
WebCodecs in WebKit With GStreamer!WebCodecs in WebKit With GStreamer!
WebCodecs in WebKit With GStreamer!
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future plan
 
Corpus collapsum: Partition tolerance of Galera in a noisy high load environment
Corpus collapsum: Partition tolerance of Galera in a noisy high load environmentCorpus collapsum: Partition tolerance of Galera in a noisy high load environment
Corpus collapsum: Partition tolerance of Galera in a noisy high load environment
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdf
 
Web Server Free Bsd
Web Server Free BsdWeb Server Free Bsd
Web Server Free Bsd
 
Genode Compositions
Genode CompositionsGenode Compositions
Genode Compositions
 
JomaSoft VDCF - Solaris Private Cloud
JomaSoft VDCF - Solaris Private CloudJomaSoft VDCF - Solaris Private Cloud
JomaSoft VDCF - Solaris Private Cloud
 
You're Off the Hook: Blinding Security Software
You're Off the Hook: Blinding Security SoftwareYou're Off the Hook: Blinding Security Software
You're Off the Hook: Blinding Security Software
 
Cross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste DaroussinCross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste Daroussin
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Quick and Solid - Baremetal on OpenStack | Rico Lin
Quick and Solid - Baremetal on OpenStack | Rico LinQuick and Solid - Baremetal on OpenStack | Rico Lin
Quick and Solid - Baremetal on OpenStack | Rico Lin
 
LF_DPDK17_DPDK support for new hardware offloads
LF_DPDK17_DPDK support for new hardware offloadsLF_DPDK17_DPDK support for new hardware offloads
LF_DPDK17_DPDK support for new hardware offloads
 

More from Semihalf

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Semihalf
 
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.Semihalf
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Semihalf
 
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01Semihalf
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Semihalf
 
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Semihalf
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Semihalf
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. Semihalf
 
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Semihalf
 
Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Semihalf
 
Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Semihalf
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKSemihalf
 
Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Semihalf
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Semihalf
 
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Semihalf
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Semihalf
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Semihalf
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Semihalf
 
Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Semihalf
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!Semihalf
 

More from Semihalf (20)

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
 
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?
 
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
 
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special.
 
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
 
Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02
 
Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
 
Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
 
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.
 
Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Bootloadery i programy bare metal.
Bootloadery i programy bare metal.
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!
 

Recently uploaded

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

FreeBSD on Cavium ThunderX System on a Chip

  • 1. FreeBSD on Cavium ThunderX System on a Chip Zbigniew Bodek zbb@semihalf.com, zbb@freebsd.org Wojciech Macek wma@semihalf.com, wma@freebsd.org
  • 2. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 3. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 4. ARMv8 as a 64­bit successor FreeBSD on Cavium ThunderX SoC ➔ What is a gain in moving to 64­bit ARMs? ➔ Much larger virtual and physical address space 
  • 5. ARMv8 as a 64­bit successor FreeBSD on Cavium ThunderX SoC ➔ What is a gain in moving to 64­bit ARMs? ➔ Twice as much data in each register x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 (LR) xzr SP PC
  • 6. ARMv8 as a 64­bit successor FreeBSD on Cavium ThunderX SoC ➔ What is a gain in moving to 64­bit ARMs? ➔ Much more CPUs in the system 8                                  96
  • 7. ARMv8 as a 64­bit successor FreeBSD on Cavium ThunderX SoC ➔ What is a gain in moving to 64­bit ARMs? ➔ New instruction set (aarch64) ➔ Clear design (Exception Levels) ➔ Cryptographic instructions (AES, SHA­1, SHA­256) ➔ Mandatory VFP and NEON ➔ Backward compatibility with 32­bit application in 32­bit  mode ➔ New, standardized components (PSCI, SMMU)
  • 8. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 9. Cavium ThunderX FreeBSD on Cavium ThunderX SoC ➔ 48 ThunderX ARMv8 CPUs  (per chip) ➔ Fully coherent in respect to  L1, L2 and DMA ➔ Virtualization ➔ PCIe3.0­centric ➔ GIC + ITS interrupt handling ➔ Up to 1TB of RAM ➔ 1/10/20/40 GbE ➔ SATA 3.0 ➔ USB 3.0
  • 10. Cavium ThunderX FreeBSD on Cavium ThunderX SoC ThunderX EVB with 48­core CPU (early prototype)
  • 11. Cavium ThunderX FreeBSD on Cavium ThunderX SoC ThunderX dual­socket CRB with 96­core CPU (server chassis form­factor)
  • 12. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 13. Initial FreeBSD state FreeBSD on Cavium ThunderX SoC ➔ What was claimed to be working ➔ Build tools (toolchain, etc.) ➔ Load and boot the kernel ➔ Start code (prepare C environment) ➔ Low­level initialization ➔ VM support ➔ Exception handling ➔ Userland (libs, syscalls, context switching and so on...) ➔ What was known to be missing ➔ Interrupt controller, GICv3+ITS ➔ ThunderX specific drivers
  • 14. Initial FreeBSD state FreeBSD on Cavium ThunderX SoC ➔ What was actually working ➔ Build tools (toolchain, etc.) ➔ Load and boot the kernel    [BUGS] ➔ Start code (prepare C environment)   [BUGS] ➔ Low­level initialization   [BUGS] ➔ VM support  [BUGS] ➔ Exception handling   [BUGS] ➔ Userland (libs, syscalls, context switching and so on...)  [BUGS] ➔ What was known to be missing ➔ Interrupt controller, GICv3+ITS ➔ ThunderX specific drivers
  • 15. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 16. Bugs, bugs, and... bugs FreeBSD on Cavium ThunderX SoC ➔ The source of bugs ➔ Switch from a simulator to a real hardware ➔ Cache, pipeline influence ➔ Realistic timings ➔ Race conditions ➔ Platform ➔ Hardware imperfections (erratas) ➔ Many­core impact ➔ Human errors ➔ Off­by­one errors ➔ Overflows ➔ Other ➔ Missing bits / genuine bugs
  • 17. Bugs, bugs, and... bugs FreeBSD on Cavium ThunderX SoC ➔ Example 1  /* Restore elr and spsr */  ldp x0, x1, [sp, #16] /* load pair from */  msr elr_el1, x0  msr spsr_el1, x1  (…)  eret /* return from exception to elr_el1 with PSR          from spsr_el1 */ IRQ here overwrites SPSR
  • 18. Bugs, bugs, and... bugs FreeBSD on Cavium ThunderX SoC ➔ Example 1  msr daifset, #2 /* Lock interrupts */  /* Restore elr and spsr */  ldp x0, x1, [sp, #16] /* load pair from */  msr elr_el1, x0  msr spsr_el1, x1  (…)  eret /* return from exception to elr_el1 with PSR          from spsr_el1 */
  • 19. Bugs, bugs, and... bugs FreeBSD on Cavium ThunderX SoC ➔ Example 2 https://community.arm.com/groups/processo rs/blog/2016/03/11/semihalf­arm­blog­2­de ad­board­and­stack­growth
  • 20. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ SMP ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 21. GICv3 + Interrupt Translation Service FreeBSD on Cavium ThunderX SoC ➔ Improvements in GICv3 ➔ Three components: ➔ Distributor ➔ Re­Distributor ➔ CPU Interfaces ➔ Affinity­based routing (Aff3:Aff2:Aff1:Aff0, domain:socket:cluster:core) ➔ MSI/MSI­x support with ITS assist ➔ Support for a huge number of interrupts (2^32 ­ 1) ➔ Auto­configuration capabilities
  • 23. GICv3 + Interrupt Translation Service FreeBSD on Cavium ThunderX SoC ➔ Responsibilities of GICv3 (Re­Distributor, Distributor): ➔ Manage PPIs and SGIs through Re­Distributors ➔ Handle legacy interrupts from devices through Distributor ➔ Send and receive IPIs based on CPU affinity address
  • 24. GICv3 + Interrupt Translation Service FreeBSD on Cavium ThunderX SoC ➔ Interrupt flow chart
  • 25. GICv3 + Interrupt Translation Service FreeBSD on Cavium ThunderX SoC ➔ Responsibilities of Interrupts Translation Service: ➔ Add new interrupt class to GIC, LPI – Locality­specific Peripheral  Interrupts ➔ Provide a way for devices to trigger message­signaled interrupts ➔ Translate MSI DEV_ID&MSI_ID to an appropriate IRQ number ➔ Pass translated interrupts directly to Re­Distributor based on set up  affinity ➔ Advantages of new approach: ➔ Standardized way to handle MSI/MSI­x ➔ Great flexibility in interrupt management ➔ Drastically increase in total MSI/MSI­x number
  • 26. GICv3 + Interrupt Translation Service FreeBSD on Cavium ThunderX SoC ➔ Setting up MSI­x (LPI) interrupt for a PCIe device 1.Map interrupt collection to a Re­Distributor 2.Allocate and map Interrupt Translation Table for a PCIe device) 3.Reserve a range of LPIs (these numbers must be unique in the system) 4.Map DEV_ID and MSI vector (i.e. memory address where the write  issued by device triggers interrupt) to an appropriate collection and LPI ➔ Cons: ➔ Complex logic, difficult to program ➔ Slow and complicated configuration of LPI interrupts ➔ Pros: ➔ Easy to use when programmed ➔ Does not need to occupy SPIs
  • 27. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 28. PCI express FreeBSD on Cavium ThunderX SoC ➔ ThunderX PCI­based architecture ➔ All on­chip devices are connected through internal PCIe bus ➔ More than 200 PCIe endpoints on internal bus ➔ ECAM configuration space (i.e. generic) ➔ Flexibility of design ➔ No DTS or ACPI is required, enumeration done using PCI  standard ➔ All components can be reused in next chip revisions ➔ Message Signaled interrupts
  • 30. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 31. VNIC FreeBSD on Cavium ThunderX SoC ➔ Virtualized NIC features: ➔ 1/10/20/40 Gbps Ethernet ➔ Partitioning: ➔ Programmable MAC layer (BGX) ➔ Network Interface Controller (NIC) ➔ Traffic Network Switch (TNS), unused
  • 32. VNIC FreeBSD on Cavium ThunderX SoC ➔ Virtualized NIC internals: NIC partitioning on ThunderX 2x BGX 4x LMAC each Max 10Gbps per LMAC 128x VNIC
  • 33. VNIC FreeBSD on Cavium ThunderX SoC ➔ BGX functions: ➔ Ordinary PCIe device on internal PCIe bus ➔ Two instances in a chip offering 4xLMACs each ➔ LMAC can be connected to the arbitrary VNIC ➔ Polling PHYs for link status
  • 34. VNIC FreeBSD on Cavium ThunderX SoC ➔ NIC, Physical Function: ➔ Does not offer network capabilities! ­ Resource Manager  only. ➔ Can create up to 128 Virtual Functions (VNICs) using      SR­IOV ➔ Provides interface to PHYs via BGX. ➔ Can communicate with its Virtual Functions using Mailboxes
  • 35. VNIC FreeBSD on Cavium ThunderX SoC ➔ NIC, Virtual Function: ➔ Can be a fully functional network adapter, or: ➔ Contains set of queues (Q­Set) ➔ 8x RQ – Receive Queue ➔ 8x SQ – Send Queue ➔ 8x CQ – Completion Queue ➔ 2x RBDR – Receive Buffer Ring ➔ Can be only a container to add more Q­Sets to another VF  – networking functions are disabled for this VF then Q-Set
  • 36. VNIC FreeBSD on Cavium ThunderX SoC ➔ Example: ➔ VF0 offers networking  functionality ➔ VF1 used for extending  resources for VF0 ➔ TX: ➔ SQ used to enqueue packets ➔ CQ signals when packet is  sent ➔ RX: ➔ RQ writes to CQ when packet  is received ➔ Driver can read descriptor and  know the source RQ number ➔ Many­to­one ➔ Both CQ and RBDR can store  events from more than one  SQ/RQ
  • 37. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ SMP ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 38. Current state and future work FreeBSD on Cavium ThunderX SoC ➔ Done: ➔ Single socket ThunderX is working on HEAD ➔ All IO interfaces are supported with good performance ➔ System is considered stable ➔ TODO: ➔ Multicore scalability (generic FreeBSD issue) ➔ Crypto support ➔ Secondary ITS (required for 2S) ➔ Dual socket support
  • 39. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ SMP ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 40. Performance measurements FreeBSD on Cavium ThunderX SoC ➔ Test1 ­ iperf3: ➔ Using iperf3 and 40Gb Direct­attached­copper link ➔ Tested Intel vs ThunderX, FreeBSD vs Linux  ➔ Using 4 instances of iperf3, with 1 to 4 TCP streams per  instance ➔ Setup 1: ➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD, 40Gb VNIC ➔ Setup 2: ➔ Intel Xeon E5­2603v3 @ 1.6GHz, 6CPU, Mellanox  ConnectX­3 40Gb, FreeBSD HEAD ➔ Setup 3: ➔ Intel Xeon E5­2603v3 @ 1.6Ghz, 6CPU, Mellanox  ConnectX­3 40Gb, Ubuntu Linux, kernel 4.2
  • 42. Performance measurements FreeBSD on Cavium ThunderX SoC ➔ Test2 ­ Nginx: ➔ Using Nginx to serve memory­stored files using HTTP ➔ Throughput is measured versus number of Nginx threads ➔ Setup 1: ➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD, 40Gb VNIC ➔ Setup 2: ➔ ThunderX @ 1.8GHz, 48CPU, Ubuntu, kernel 4.2, 40Gb  VNIC
  • 44. Performance measurements FreeBSD on Cavium ThunderX SoC ➔ Test3 ­ AIO: ➔ Using fio to benchmark block device performance ➔ Tested with 3 SSDs, each capable of 50kIOPS@4k ➔ Setup 1: ➔ ThunderX @ 1.8GHz, 48CPU, FreeBSD HEAD ➔ Setup 2: ➔ ThunderX @ 1.8GHz, 48CPU, Ubuntu, kernel 4.2
  • 46. Presentation outline FreeBSD on Cavium ThunderX SoC ➔ Hardware platform ➔ ARMv8 as a 64­bit successor ➔ Cavium ThunderX ➔ Porting to ThunderX ➔ Initial FreeBSD state ➔ Bugs, bugs and... bugs ➔ On­chip peripherals support ➔ GICv3 + ITS ➔ SMP ➔ PCIe ➔ VNIC ➔ Current state & future work ➔ Performance measurements ➔ Q&A 
  • 47. References FreeBSD on Cavium ThunderX SoC ➔ https://wiki.freebsd.org/arm64  ➔ https://community.arm.com/groups/processors/blog/2015/11 /03/semihalfs­arm64­blog­1­the­freebsd­on­the­96­cpu­arm v8­soc   ➔ https://community.arm.com/groups/processors/blog/2016/03 /11/semihalf­arm­blog­2­dead­board­and­stack­growth   ➔ https://www.youtube.com/watch?v=1q5aDEt18mw 
  • 48. Acknowledgements FreeBSD on Cavium ThunderX SoC ➔ Special thanks go to: ➔ Dominik Ermel, Michał Mazur, Tomasz Nowicki, Michał  Stanek (all Semihalf) ➔ Ed Maste (The FreeBSD Foundation), Andrew Wafaa  (ARM), Larry Wikelius (Cavium) for the successful  cooperation. ➔ Andrew Turner (FreeBSD Project) for insightful reviews and  advice. ➔ Rafał Jaworowski (Semihalf) for organizing and managing  this project. This project was sponsored by ARM, Cavium, The  FreeBSD Foundation and Semihalf.
  • 49. Q&A FreeBSD on Cavium ThunderX SoC Any questions?