Memory Management in Tizen. SW Platform Team, SW R&D Center
|
|
- Homer Sanders
- 6 years ago
- Views:
Transcription
1 Memory Management in Tizen SW Platform Team, SW R&D Center
2 Contents Tizen Kernel Overview Memory Management in Tizen Kernel Memory Size Optimization 2
3 Tizen Kernel Overview 3
4 Tizen Kernel Overview Core Multimedia FW Sensor FW Telephony FW System FW... X11 OpenGL ES EFL GStreamer /2.0 OAL (OEM Adaptation Layer) Kernel Telephony Plug-ins GStreamer Plug-ins Sensor Plug-ins System Plug-ins OpenGL ES/EGL Graphics Driver... Kernel Memory Management Graphics Multimedia Power Management Storage Peripheral CMA IOMMU DMA BUF DRM Link1 Link2 V4L2 CPUfre q Devf req Ther mal Block Layer MMC/Flash Input, Sensor, 4 More at DRM Link1: elinux.org/images/7/71/elce11_dae.pdf DRM Link2: the_drm_(direct_rendering_manager)_of_tizen_kernel.pdf
5 Tizen Kernel Overview Core Service Layer Memory Management in Tizen Multimedia FW Sensor FW Telephony FW X11 System FW Coupled with Graphics & Multimedia devices. OpenGL ES EFL GStreamer /2.0 Graphics & Multimedia devices = DMA devices with HUGE buffers... OAL (OEM Adaptation Layer) Kernel Telephony Plug-ins GStreamer Plug-ins Sensor Plug-ins System Plug-ins OpenGL ES/EGL Graphics Driver... Kernel Memory Management Graphics Multimedia Power Management Storage Peripheral CM A IOMM U DMA BUF DRM Link1 Link2 V4L2 CPUfre q Devf req Ther mal Block Layer MMC/Flash Input, Sensor, 5 More at DRM Link1: elinux.org/images/7/71/elce11_dae.pdf DRM Link2: the_drm_(direct_rendering_manager)_of_tizen_kernel.pdf
6 Tizen Kernel Overview Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 6 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
7 Contents Tizen Kernel Overview Memory Management in Tizen Kernel To Run Tizen OS. Basic Memory Management Components Buffer Sharing (UMM/DMABUF) Buffer Allocation (UMM/DMAAPI) Buffer Synchronization Memory Size Optimization 7
8 Tizen Kernel MM, Graphics (DRM) Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 8 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
9 Graphics: DRM/GEM (Graphics Execution Manager) Linux DRM Common Framework drm_mode_config drm_fb_helper GEM Crtc Plane Connector Encoder drm_framebuffer Crtc Plane Connector Encoder drm_framebuffer fb_info GEM Allocator Common Specific 9
10 Graphics: DRM/GEM (Graphics Execution Manager) Linux Graphics Execution Manager DRM Common Framework drm_mode_config drm_fb_helper Framework Connector developed by Intel Crtc Plane To manage Encoder graphics memory drm_framebuffer GEM Framework Connector for buffer management. Crtc Plane drm_framebuffer Allocation Encoder and sharing. fb_info GEM Allocator Common Specific 10
11 Graphics: DRM/GEM Allocation GEM Allocation Tizen (Generic) 1. DRM_IOCTL_MODE_CREATE_DUMB Create GEM object(global) & user GEM handle(per process) dumb_create() of struct drm_driver No physical memory allocated. 2. DRM_IOCTL_MODE_MAP_DUMB 3. MMAP Create fake mmap offset of a gem object and relay the object to user A hash key of the gem object. dumb_map_offset() of struct drm_driver Request mmap based on the hash key as the offset Create user address space Setup cache attribute. Not mapped to physical memory, yet 11
12 Graphics: DRM/GEM Allocation GEM Allocation Tizen (Generic) 4. On-demand Paging Implement & Register a fault handler that With a page fault, allocate a page and map the page. vma->vm_ops->fault = xxx_drm_gem_fault 5. Use! 6. DRM_IOCTL_MODE_DESTROY_DUMB Remove GEM handle & object Free memory Implement dumb_destroy() of struct drm_driver 12
13 Graphics: DRM/GEM Allocation GEM Allocation Tizen (Exynos Only) 1. DRM_IOCTL_EXYNOS_GEM_CREATE Only use user-desired size and buffer types. Create gem object(global) & user gem handle(per process) physical memory allocated. 2. DRM_IOCTL_EXYNOS_GEM_MMAP Create user address space Map the user address space to physical memory LIBDRM of Exynos uses these APIs, not the generic. 13
14 Graphics: DRM/GEM Sharing GEM Tizen DRM_IOCTL_GEM_FLINK I will share this GEM to others. Create GEM object name for the given GEM handle Global key vaue for sharing DRM_IOCTL_GEM_OPEN I want to use the shared GEM. Create GEM handle based on the given GEM object name DRM_IOCTL_GEM_CLOSE You don t need to implement. It s already there with DRM. Process 1 Process 2 GEM Create GEM FLINK GEM OPEN gem handle gem object name gem handle 14
15 Tizen Kernel MM, Multimedia (V4L2/VB2) Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 15 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
16 Multimedia: V4L2/VB2 Tizen recommends to use V4L2 at Tizen kernel for Multimedia devices Video input (codec & camera) & Radio However, as long as the kernel has: Gstreamer/OpenMAX plugins A method to share with other F/W via DMABUF of UMM, Tizen multimedia works. If V4L2/VB2 is used, things get easier. 16
17 Tizen Kernel MM, OpenGL/G3D-GPU Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 17 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
18 OpenGL / G3D-GPU Most ARM SoC GPUs (MALI, SGX, ) use their own memory manager E.g., Exynos4412/4210 Tizen Reference Kernel has Mali w/ UMP. Mali DDK modified to be compatible with UMM-DMABUF. If GPU drivers use DRM, it would be great. (and make them GPL) 18
19 Contents Tizen Kernel Overview Memory Management in Tizen Kernel To Run Tizen OS. Basic Memory Management Components Buffer Sharing (UMM/DMABUF) Buffer Allocation (UMM/DMAAPI) Buffer Synchronization Memory Size Optimization 19
20 NEED FOR SOMETHING, A Scenario Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 Camera fetches a video stream Kernel / Device Drivers (BSP) DRM Framework GEM GPU DDK (G3D) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 20 Core Framework This scenario Core External is simplified for OEM presentation. Library Not an actual example Adaptation of Tizen Kernel * Images from MS Office clipart and Samsung
21 NEED FOR SOMETHING, A Scenario Draws its own images Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 Camera fetches a video stream Kernel / Device Drivers (BSP) DRM Framework GEM GPU DDK (G3D) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 21 Core Framework This scenario Core External is simplified for OEM presentation. Library Not an actual example Adaptation of Tizen Kernel * Images from MS Office clipart and Samsung
22 NEED FOR SOMETHING, A Scenario Draws its own images Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Kernel / Core & Subsystem V4L2 VB2 Gstreamer- CameraSrc Camera fetches a video stream Kernel / Device Drivers (BSP) Libdrm 2D GPU backend DRM Framework GEM NEON PIXMAN 2D GPU backend Userptr GPU Merges the two / Puts the merged image GPU DDK (G3D) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 22 Core Framework This scenario Core External is simplified for OEM presentation. Library Not an actual example Adaptation of Tizen Kernel * Images from MS Office clipart and Samsung
23 NEED FOR SOMETHING, A Scenario Draws its own images Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Kernel / Core & Subsystem V4L2 VB2 Gstreamer- CameraSrc Camera fetches a video stream Kernel / Device Drivers (BSP) Libdrm 2D GPU backend DRM Framework GEM NEON PIXMAN 2D GPU backend Userptr GPU Merges the two / Puts the merged image GPU DDK (G3D) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D DRM-FIMD(display) Output 23 Core Framework This scenario Core External is simplified for OEM presentation. Library Not an actual example Adaptation of Tizen Kernel * Images from MS Office clipart and Samsung
24 NEED FOR SOMETHING, A Scenario Draws its own images At a GEM buffer Multimedia FW X Server XvImageSink XV Extension X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Kernel / Core & Subsystem V4L2 VB2 Gstreamer- CameraSrc At a VB2 buffer Libdrm 2D GPU backend DRM Framework GEM NEON PIXMAN 2D GPU backend Userptr GPU Merges the two / Puts the merged image GPU DDK From GEM + VB2 into its own (e.g., UMP) (G3D) Camera fetches a video stream Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D DRM-FIMD(display) Output GEM buffer 24 Core Framework This scenario Core External is simplified for OEM presentation. Library Not an actual example Adaptation of Tizen Kernel * Images from MS Office clipart and Samsung
25 Tizen Kernel MM, UMM Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Gstreamer- CameraSrc Kernel / Core & Subsystem Libdrm A mechanism to share between DRM, V4L2, and others w/o memcpy 2D GPU backend NEON PIXMAN 2D GPU backend Userptr V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 25 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
26 Tizen Kernel MM, UMM Requirement from Tizen platform and hardware Multimedia FW X Server Different Memory Managers: GEM, VB2, GPU-adhoc, XvImageSink XV Extension X Video Drivers EXA Share buffers Kernel GStreamer w/o memcpy Gstreamer- OpenMAX CameraSrc Kernel / Core & Subsystem Libdrm 2D GPU backend From and to users Never expose directly to users (e.g., physical address) UMM DMABUF! NEON EFL Evas PIXMAN 2D GPU backend Userptr Open GL V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 26 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
27 Tizen Kernel Memory Management Unified Memory Management (UMM) Introduced by Jesse Barker, 2011 Includes DMABUF (sharing buffer) DMA Mapping API for Allocation. CMA (Contiguous Memory Allocator) IOMMU (MMU for I/O devs) 27
28 Tizen Kernel MM, UMM DMA Buffer Sharing: DMABUF Export GEM/VB2/ object DMABUF Import DMABUF GEM/VB2/ object Userspace sees DMABUF as a File Descriptor 28
29 DMA Buffer Sharing: DMABUF, Example Camera Display User space X server Xvsink Camera App FD Video encoder Camera src Kernel space DRM KMS GEM V4L2 Codec V4L2 Camera struct dma_buf HW Display Codec Camera Memory 29
30 DMA Buffer Sharing: DMABUF, Example Conceptual Data Flow User space X server Xvsink Camera App FD Video encoder Camera src Kernel space DRM KMS GEM V4L2 Codec V4L2 Camera struct dma_buf HW Display Codec Camera Memory 30
31 DMABUF Usage Example 1/4 Camera App 1) Request V4L2 camera buffer (U) 2) Allocate CMA buffer (K) 3) Request a camera frame at the V4L2 buffer (U) 4) Store the camera frame & Notify user (K) 5) Request DMABUF export for the V4L2 camera buffer (U) 6) dma_buf_exporter() (K) - Create DMABUF from V4L2 buffer 7) dma_buf_fd() (K) - Provide FD of the DMABUF to user User space HW Kernel space X server DRM Xvsink Camera App Camera src FD Video encoder KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 31
32 DMABUF Usage Example 1/4 Camera App 1) Request V4L2 camera buffer (U) 2) Allocate CMA buffer (K) 3) Request a camera frame at the V4L2 buffer (U) 4) Store the camera frame & Notify user (K) 5) Request DMABUF export for the V4L2 camera buffer (U) 6) dma_buf_exporter() (K) - Create DMABUF from V4L2 buffer 7) dma_buf_fd() (K) - Provide FD of the DMABUF to user User space HW Kernel space X server DRM Xvsink Camera App Camera src FD Video encoder KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 32
33 DMABUF Usage Example 1/4 Camera App 1) Request V4L2 camera buffer (U) 2) Allocate CMA buffer (K) 3) Request a camera frame at the V4L2 buffer (U) 4) Store the camera frame & Notify user (K) 5) Request DMABUF export for the V4L2 camera buffer (U) 6) dma_buf_exporter() (K) - Create DMABUF from V4L2 buffer 7) dma_buf_fd() (K) - Provide FD of the DMABUF to user User space HW Kernel space X server DRM Xvsink Camera App Camera src FD Video encoder KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 33
34 DMABUF Usage Example 2/4 Camera App 8) Request FD->GEM conversion (U) 9) dma_buf_get(fd) (K) - Get DMABUF from FD 10) dma_buf_attach(dma-buf) / dma_buf_map_attachment() (K) - Get Buffer from DMABUF 11) Import as GEM, send user (K) 12) Request GEM object name (U) 13) Return GEM object name (K) 14) Send GEM object name to X (U) User space HW Kernel space X server DRM Xvsink Camera App Camera src FD Video encoder KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 34
35 DMABUF Usage Example 2/4 Camera App 8) Request FD->GEM conversion (U) 9) dma_buf_get(fd) (K) - Get DMABUF from FD 10) dma_buf_attach(dma-buf) / dma_buf_map_attachment() (K) - Get Buffer from DMABUF 11) Import as GEM, send user (K) 12) Request GEM object name (U) 13) Return GEM object name (K) 14) Send GEM object name to X (U) User space HW Kernel space X server DRM Xvsink Camera App Camera src FD Video encoder KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 35
36 DMABUF Usage Example 3/4 Camera App X server Xvsink FD Camera src Video encoder User space X server Kernel space DRM KMS GEM V4L2 Codec V4L2 Camera 15) Convert given GEM object name to GEM. Display its content. (U & K) struct dma_buf HW Display Codec Camera Memory 36
37 DMABUF Usage Example 3/4 Camera App X server Xvsink FD Camera src Video encoder User space X server Kernel space DRM KMS GEM V4L2 Codec V4L2 Camera 15) Convert given GEM object name to GEM. Display its content. (U & K) struct dma_buf HW Display Codec Camera Memory 37
38 DMABUF Usage Example 4/4 Camera App X server Xvsink FD Camera src Close after usage 1) Free the GEM object (U) 2) Remove reference from the DMABUF (K) 3) Close(DMABUF-FD) at cam app (U) 4) (No more reference to DMABUF) Release callback executed (K) User space HW Kernel space Video encoder DRM KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 38
39 DMABUF Usage Example 4/4 Camera App X server Xvsink FD Camera src Close after usage 1) Free the GEM object (U) 2) Remove reference from the DMABUF 3) Close(DMABUF-FD) at cam app (U) 4) (No more reference to DMABUF) Release callback executed (K) User space HW Kernel space Video encoder DRM KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 39
40 DMABUF Usage Example 4/4 Camera App X server Xvsink FD Camera src Close after usage 1) Free the GEM object (U) 2) Remove reference from the DMABUF 3) Close(DMABUF-FD) at cam app (U) 4) (No more reference to DMABUF) Release callback executed (K) User space HW Kernel space Video encoder DRM KMS GEM V4L2 Codec V4L2 Camera struct dma_buf Display Codec Camera Memory 40
41 Sorry, Back to DRM/GEM DMABUF Import / Export needs to be added DRM_IOCTL_PRIME_HANDLE_TO_FD Export gem handle into dmabuf fd DRM_IOCTL_PRIME_FD_TO_HANDLE Import dmabuf fd into gem handle 41
42 Contents Tizen Kernel Overview Memory Management in Tizen Kernel To Run Tizen OS. Basic Memory Management Components Buffer Sharing (UMM/DMABUF) Buffer Allocation (UMM/DMAAPI) Buffer Synchronization Memory Size Optimization 42
43 Tizen Kernel Memory Management Unified Memory Management (UMM) Introduced by Jesse Barker, 2011 Includes DMABUF (sharing buffer) DMA Mapping API for Allocation. CMA (Contiguous Memory Allocator) IOMMU (MMU for I/O devs) 43
44 Tizen Kernel MM, UMM DMA Mapping Tizen Reference DRM / GEM 1 2 V4L2 / VB2 2 2 Common DMA Mapping Framework Driver CMA Buddy IOMMU IOMMU System Memory 1: Exynos-DRM provides unified device address space for all DRM devices 2: Each V4L2 device has its own device address space 44
45 Contents Tizen Kernel Overview Memory Management in Tizen Kernel To Run Tizen OS. Basic Memory Management Components Buffer Sharing (UMM/DMABUF) Buffer Allocation (UMM/DMAAPI) Buffer Synchronization Memory Size Optimization 45
46 Tizen Kernel Memory Management We Still Have A HUGE Problem! 46
47 Tizen Kernel MM, Buffer Sync. Multimedia FW XvImageSink XV Extension X Server X Video Drivers EXA EFL Evas Open GL Kernel OpenMAX GStreamer Synchronization? Gstreamer- CameraSrc Libdrm 2D GPU backend NEON PIXMAN 2D GPU backend Userptr Kernel / Core & Subsystem V4L2 VB2 UMM DMABUF DRM Framework GEM GPU DDK (G3D) Kernel / Device Drivers (BSP) Codec Camera Radio Display HDMI Virtual Display Post Processor G2D 47 Core Framework Core External Library OEM Adaptation Kernel * Images from MS Office clipart and Samsung
48 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 CPU GPU BUS DRAM DRAM 48
49 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 CPU GPU BUS DRAM DRAM 49
50 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 CPU GPU BUS DRAM DRAM 50
51 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 CPU GPU BUS DRAM DRAM 51
52 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 CPU GPU BUS DRAM DRAM 52
53 Tizen Kernel MM, Buffer Sync. What s the problem? Simple Usage Scenario 1. CPU writes to buffer1. 2. CPU tells GPU to do something on buffer1. 3. GPU does something on buffer1. 4. GPU finishes. 5. CPU reads the buffer1 How to ensure CPU won t use buffer 1 until step 4? (esp., a user process) 53
54 Tizen Kernel MM, Buffer Sync. What s the problem? What if there are two threads using GPU? And if the two look at the same buffer? Not even aware of it? CPU, Thread1 CPU, Thread2 GPU BUS DRAM DRAM 54
55 Tizen Kernel MM, Buffer Sync. What s the problem? What if the two DMA devices (GPU, FIMC) share buffer? But hard to know it at drivers or user threads. FIMC never knows when GPU finishes FIMC never knows when Threads1 stops using buffer1 Threads2 never know when GPU stops using buffer1 CPU, Thread1 CPU, Thread2 GPU FIMC-IPP (Image Post Processing) BUS DRAM DRAM 55
56 Tizen Kernel Memory Management Buffer Synchronization TGL (Tizen Global Tizen 2.0 Let userspace handle the issue Kernel patch required. Sync Framework (Google) Jun, Resources w/o DMABUF (similar with TGL) KDS (Kernel Dependency System, ARM) May 2012 / DMABUF-compatible DMA Fence Framework (Canonical/TI) Aug 2012 / DMABUF-compatible Work-In-Progress 56
57 Contents Tizen Kernel Overview Memory Management in Tizen Kernel Memory Size Optimization To Run w/ More Devices 57
58 Memory Size Optimization: Challenge A device with 512MB RAM Graphics/Multimedia devices want 400MB reserved No IOMMU. The userspace wants to run a web browser and HTML5 app! REALLY POSSIBLE? 58
59 Memory Size Optimization: Challenge A device with 512MB RAM Graphics/Multimedia devices want 400MB reserved No IOMMU The userspace wants to run a web browser and HTML5 app! REALLY POSSIBLE? WHY NOT? 59
60 Minimize H/W Reserved Memory CMA (Contiguous Memory Allocator) Camera wants to reserve 400MB. No IOMMU: too primitive to use paging. You don t use cameras while web browsing. Free the 400MB reserved to camera, let userspace use it. CMA can do. 60
61 Minimize H/W Reserved Memory (Obsolete/Low-cost) ARM SoC s DMA devices No IOMMU Use physically continuous memory chunk. No paging Potentially, a lot of memory is wasted. CPU CPU CPU L2 Cache MMU BUS DRAM Controller DRAM DRAM GPU 61
62 Minimize H/W Reserved Memory IOMMU (Modern/Mid-High-cost) ARM SoC s DMA devices IOMMU for DMA devices! Use paging! Dynamically allocate & free CPU CPU CPU L2 Cache MMU BUS DRAM Controller DRAM DRAM GPU IOMMU 62
63 Minimize H/W Reserved Memory IOMMU Exynos4210/4412-based Tizen mobile device Achieved near-zero reserved memory. At the menuscreen, only around ~40MB allocated for display and GPU. Unfortunately, not included in the Tizen reference kernel. But easily supported by Vanilla kernel for Tizen reference boards 63
64 Minimize H/W Reserved Memory Results with 1GB RAM Device -sh-4.1# free total used free shared buffers cached Mem: /+ buffers/cache: Swap: sh-4.1# uname -a Linux localhost gc1981b1 #34 SMP PREEMPT Wed Apr 10 10:24:04 KST 2013 armv7l GNU/Linux Mostly available to kernel ( of 1024MB) Even with Tizen loaded, mostly free to users (856MB of 1GB) 64
65 Memory Size Optimization: Still Hungry? Further optimization required for low-budget devices Running full features with 512MB? Or even < 512MB? What about multi-tasking or background apps? 65
66 Memory Size Optimization: SWAP Swap zram Used in some Samsung mobile devices successfully Or even swap-to-flash? 66
67 Memory Size Optimization: Multitasking / Background Apps Limit multitasking & background-app support Pseudo multitasking by freezing background apps 67
68 Thank you!
LCA14-417: mmap, allocators & sharing buffers - userland experience. Thu 6 March, 4:10pm, S.Semwal, B.Gaignard
LCA14-417: mmap, allocators & sharing buffers - userland experience Thu 6 March, 4:10pm, S.Semwal, B.Gaignard Agenda Discussion, not presentation :) Current state Your experiences? Idea of Central dmabuf
More informationDRM(Direct Rendering Manager) of Tizen Kernel Joonyoung Shim
DRM(Direct Rendering Manager) of Tizen Kernel Joonyoung Shim jy0922.shim@samsung.com Contents What is DRM Why DRM What can we do How to implement Tizen kernel DRM Exynos DRM driver Future work 2 What is
More informationExporting virtual memory as dmabuf. Nikhil Devshatwar Texas Instruments, India
1 Exporting virtual memory as dmabuf Nikhil Devshatwar Texas Instruments, India 2 About author Embedded Linux developer @Texas Instruments Video subsystem Camera drivers Base port support Contributions
More informationDisplay and Kernel Review and Future
Display and Kernel Review and Future Kernel Recipes 2013 Paris Laurent Pinchart laurent.pinchart@ideasonboard.com Problem Definition display / / graphics / / video display / graphics / video Problem -
More informationThe Linux graphics stack, Optimus and the Nouveau driver
The Linux graphics stack, Optimus and the Nouveau driver Cooperative rendering across GPUs on Linux Martin Peres Nouveau developer PhD student at LaBRI X.Org Foundation board member September 26, 2014
More informationTizen Overview (Tizen Ver. 2.3)
Tizen Overview (Tizen Ver. 2.3) Spring 2015 Soo Dong Kim, Ph.D. Professor, Department of Computer Science Software Engineering Laboratory Soongsil University Office 02-820-0909 Mobile 010-7392-2220 sdkim777@gmail.com
More informationPorting Tizen-IVI 3.0 to an ARM based SoC Platform
Porting Tizen-IVI 3.0 to an ARM based SoC Platform Damian Hobson-Garcia Automotive Linux Summit July 1-2, 2014 Tokyo, Japan Tizen IVI support Until recently Intel architecture (x86) system Tizen IVI 2.0alpha,
More informationEfficient Video Processing on Embedded GPU
Efficient Video Processing on Embedded GPU Tobias Kammacher Armin Weiss Matthias Frei Institute of Embedded Systems High Performance Multimedia Research Group Zurich University of Applied Sciences (ZHAW)
More informationPorting Tizen-IVI 3.0 to an ARM based SoC Platform. Damian Hobson-Garcia, IGEL Co., Ltd.
Porting Tizen-IVI 3.0 to an ARM based SoC Platform Damian Hobson-Garcia, IGEL Co., Ltd. Current State of Affairs Intel architecture (x86) system Tizen IVI 2.0alpha, Tizen IVI 3.0 ARM architecture based
More informationLinux DRM Developer s Guide
Linux DRM Developer s Guide Linux DRM Developer s Guide Copyright 2008 Intel Corporation (Jesse Barnes ) The contents of this file may be used under the terms of the GNU General
More informationMarek Szyprowski Samsung R&D Institute Poland
Marek Szyprowski m.szyprowski@samsung.com Samsung R&D Institute Poland Quick Introduction to Linux DRM A few words on atomic KMS API Exynos DRM IPP subsystem New API proposal Some code examples Summary
More informationBringing display and 3D to the C.H.I.P computer
Embedded Linux Conference 2016 Bringing display and 3D to the C.H.I.P computer Maxime Ripard maxime@bootlin.com Copyright 2004-2018, Bootlin. Creative Commons BY-SA 3.0 license. embedded Linux and kernel
More informationMethods to protect proprietary components in device drivers
Methods to protect proprietary components in device drivers Matt Porter Embedded Alley Solutions, Inc. Introduction Why the interest in closed drivers on Linux? Competition Advantage perception Upsell
More informationSync Points in the Intel Gfx Driver. Jesse Barnes Intel Open Source Technology Center
Sync Points in the Intel Gfx Driver Jesse Barnes Intel Open Source Technology Center 1 Agenda History and other implementations Other I/O layers - block device ordering NV_fence, ARB_sync EGL_native_fence_sync,
More informationEmbedded Streaming Media with GStreamer and BeagleBoard. Presented by Todd Fischer todd.fischer (at) ridgerun.com
Embedded Streaming Media with GStreamer and BeagleBoard Presented by Todd Fischer todd.fischer (at) ridgerun.com 1 Agenda BeagleBoard-XM multimedia features GStreamer concepts GStreamer hands on exercises
More informationBringing display and 3D to the C.H.I.P computer
Embedded Linux Conference 2016 Bringing display and 3D to the C.H.I.P computer Maxime Ripard Free Electrons maxime@free-electrons.com Free Electrons Embedded Linux Developers c Copyright 2004-2016, Free
More informationEmbedded Linux Conference EU Complex Cameras on Linux. Mauro Carvalho Chehab. Oct, SRBR Samsung R&D Institute Brazil
Embedded Linux Conference EU 2018 Complex Cameras on Linux Oct, 23 2018 Mauro Carvalho Chehab SRBR Samsung R&D Institute Brazil Contents I. What is a complex camera? II. Libv4l Manaus Campinas III. Modern
More information4K Video Processing and Streaming Platform on TX1
4K Video Processing and Streaming Platform on TX1 Tobias Kammacher Dr. Matthias Rosenthal Institute of Embedded Systems / High Performance Multimedia Research Group Zurich University of Applied Sciences
More information4K HEVC Video Processing with GPU Optimization on Jetson TX1
4K HEVC Video Processing with GPU Optimization on Jetson TX1 Tobias Kammacher Matthias Frei Hans Gelke Institute of Embedded Systems / High Performance Multimedia Research Group Zurich University of Applied
More information4K Video Processing and Streaming Platform on TX1
4K Video Processing and Streaming Platform on TX1 Tobias Kammacher Dr. Matthias Rosenthal Institute of Embedded Systems / High Performance Multimedia Research Group Zurich University of Applied Sciences
More informationLinux DRM Developer s Guide
Linux DRM Developer s Guide Linux DRM Developer s Guide Copyright 2008-2009 Intel Corporation (Jesse Barnes ) The contents of this file may be used under the terms of the GNU General
More informationGCMA: Guaranteed Contiguous Memory Allocator. SeongJae Park
GCMA: Guaranteed Contiguous Memory Allocator SeongJae Park These slides were presented during The Kernel Summit 2018 (https://events.linuxfoundation.org/events/linux-kernel-summit-2018/)
More informationVideo4Linux: Current Status and Future Work
Video4Linux: Current Status and Future Work Hans Verkuil Cisco Systems Norway Typical Consumer Hardware Tuner A/D A/V decoder PCI/USB Bridge (DMA engine) /dev/video0 Sensor USB Bridge /dev/video0 SoC HW:
More informationCase Study: Building a High Quality Video Pipeline Using GStreamer and V4Linux on an i.mx6
Case Study: Building a High Quality Video Pipeline Using GStreamer and V4Linux on an i.mx6 Sean Hudson Embedded Linux Architect & Member of Technical Staff Android is a trademark of Google Inc. Use of
More informationContiguous memory allocation in Linux user-space
Contiguous memory allocation in Linux user-space Guy Shattah, Christoph Lameter Linux Plumbers Conference 2017 Contents Agenda Existing User-Space Memory Allocation Methods Fragmented Memory vs Contiguous
More informationGeneric Buffer Sharing Mechanism for Mediated Devices
Generic Buffer Sharing Mechanism for Mediated Devices Tina Zhang tina.zhang@intel.com 1 Agenda Background Generic Buffer Sharing in MDEV Framework Status Summary 2 Virtual Function I/O Virtual Function
More informationBringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse
Bringing it all together: The challenge in delivering a complete graphics system architecture Chris Porthouse System Integration & the role of standards Content Ecosystem Java Execution Environment Native
More informationGraphics Stack Update
Graphics Stack Update Presented by Jammy Zhou Date March 9, 2016 Event BKK16 Agenda X11/Wayland/Android graphics overview Mali and Adreno driver status Linaro effort around graphics Discussion and Q&A
More informationEXPLICIT SYNCHRONIZATION
EXPLICIT SYNCHRONIZATION Lauri Peltonen XDC, 8 October, 204 WHAT IS EXPLICIT SYNCHRONIZATION? Fence is an abstract primitive that marks completion of an operation Implicit synchronization Fences are attached
More informationCIS Operating Systems Memory Management Cache and Demand Paging. Professor Qiang Zeng Spring 2018
CIS 3207 - Operating Systems Memory Management Cache and Demand Paging Professor Qiang Zeng Spring 2018 Process switch Upon process switch what is updated in order to assist address translation? Contiguous
More informationSimple Plugin API. Wim Taymans Principal Software Engineer October 10, Pinos Wim Taymans
Simple Plugin API Wim Taymans Principal Software Engineer October 10, 2016 1 In the begining 2 Pinos DBus service for sharing camera Upload video and share And then... Extend scope Add audio too upload,
More informationInput / Output. Kevin Webb Swarthmore College April 12, 2018
Input / Output Kevin Webb Swarthmore College April 12, 2018 xkcd #927 Fortunately, the charging one has been solved now that we've all standardized on mini-usb. Or is it micro-usb? Today s Goals Characterize
More informationMultimedia SoC System Solutions
Multimedia SoC System Solutions Presented By Yashu Gosain & Forrest Picket: System Software & SoC Solutions Marketing Girish Malipeddi: IP Subsystems Marketing Agenda Zynq Ultrascale+ MPSoC and Multimedia
More informationCIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017
CIS 5512 - Operating Systems Memory Management Cache Professor Qiang Zeng Fall 2017 Previous class What is logical address? Who use it? Describes a location in the logical memory address space Compiler
More informationIntegrating DMA Into the Generic Device Model
Integrating DMA Into the Generic Device Model James Bottomley SteelEye Technology 26 July 2003 1 In the Beginning There was Programmed I/O (PIO). The processor coped with all the quirky device timings
More informationQoS Handling with DVFS (CPUfreq & Devfreq)
QoS Handling with DVFS (CPUfreq & Devfreq) MyungJoo Ham SW Center, 1 Performance Issues of DVFS Performance Sucks w/ DVFS! Battery-life Still Matters More Devices (components) w/ DVFS More Performance
More informationMedia Controller (MC) and OMAP2+ Display Subsystem (DSS) Embedded Linux Conference, SFO, 2011 Sumit Semwal
Controller (MC) and OMAP+ Display Subsystem (DSS) Embedded Linux Conference, SFO, Sumit Semwal Agenda OMAP+ Display Subsystem (DSS) Overview of OMAP+ DSS Current software design DSS framework Interesting
More informationMultimedia in Mobile Phones. Architectures and Trends Lund
Multimedia in Mobile Phones Architectures and Trends Lund 091124 Presentation Henrik Ohlsson Contact: henrik.h.ohlsson@stericsson.com Working with multimedia hardware (graphics and displays) at ST- Ericsson
More informationDesigning with NXP i.mx8m SoC
Designing with NXP i.mx8m SoC Course Description Designing with NXP i.mx8m SoC is a 3 days deep dive training to the latest NXP application processor family. The first part of the course starts by overviewing
More informationI/O. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 6.5-6
I/O Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 6.5-6 Computer System = Input + Output + Memory + Datapath + Control Video Network Keyboard USB Computer System
More informationSpring 2017 :: CSE 506. Device Programming. Nima Honarmand
Device Programming Nima Honarmand read/write interrupt read/write Spring 2017 :: CSE 506 Device Interface (Logical View) Device Interface Components: Device registers Device Memory DMA buffers Interrupt
More informationPRIME Synchronization. XDC 2016 Alex Goins, Andy Ritger
PRIME Synchronization XDC 2016 Alex Goins, Andy Ritger 1 Introduction: PRIME Output Slaving Enables the sequence: One GPU renders and transfer pixels through GEM shared buffers. Another GPU displays the
More informationThroughput Exploration and Optimization of a Consumer Camera Interface for a Reconfigurable Platform
Throughput Exploration and Optimization of a Consumer Camera Interface for a Reconfigurable Platform By: Floris Driessen (f.c.driessen@student.tue.nl) Introduction 1 Video applications on embedded platforms
More informationPorting Nouveau to Tegra K1
Porting Nouveau to Tegra K1 How NVIDIA became a Nouveau contributor Alexandre Courbot, NVIDIA FOSDEM 2015 The Story So Far... In 2014 NVIDIA released the Tegra K1 SoC 32 bit quad-core or 64-bit dual core
More informationThe future of X.Org on non-gnu/linux systems
The future of X.Org on non-gnu/linux systems Matthieu Herrb OpenBSD/X.Org February 2, 2013 Introduction X has always been multi-platform XFree86 was started on SVr4 and FreeBSD, ported on Linux later.
More informationSFO15-200: TEE kernel driver
SFO15-200: TEE kernel driver Presented by Jens Wiklander Jens Wiklander Date Tuesday 22 September 2015 Event SFO15 Introduction A TEE (Trusted Execution Environment) is a Trusted OS running in some secure
More informationChapter 8: Main Memory
Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:
More informationUnder The Hood: Performance Tuning With Tizen. Ravi Sankar Guntur
Under The Hood: Performance Tuning With Tizen Ravi Sankar Guntur How to write a Tizen App Tools already available in IDE v2.3 Dynamic Analyzer Valgrind 2 What s NEXT? Want to optimize my application App
More informationEmbedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi
Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed
More informationChapter 8: Memory-Management Strategies
Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and
More informationRunning Android on the Mainline Graphics Stack. Robert
Running Android on the Mainline Graphics Stack Robert Foss @memcpy_io Agenda Android History Android on Mainline Current Status Big Picture Android History Android History Qualcomm diff with mainline,
More informationCIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2015
CIS 5512 - Operating Systems Memory Management Cache Professor Qiang Zeng Fall 2015 Previous class What is logical address? Who use it? Describes a location in the logical address space Compiler and CPU
More informationImprove VNF safety with Vhost-User/DPDK IOMMU support
Improve VNF safety with Vhost-User/DPDK IOMMU support No UIO anymore! Maxime Coquelin Software Engineer KVM Forum 2017 AGENDA Background Vhost-user device IOTLB implementation Benchmarks Future improvements
More informationConnecting with Tizen : An Overview & Roadmap. Mohan Rao
Connecting with Tizen : An Overview & Roadmap Mohan Rao Contents What is Tizen? Why Tizen? Device profile Tizen 2.4 Tizen 3.0 What s next? Conclusion 2 What is Tizen? (1/2) Designed for various category
More informationA Linux multimedia platform for SH-Mobile processors
A Linux multimedia platform for SH-Mobile processors Embedded Linux Conference 2009 April 7, 2009 Abstract Over the past year I ve been working with the Japanese semiconductor manufacturer Renesas, developing
More informationEGLSTREAMS: INTEROPERABILITY FOR CAMERA, CUDA AND OPENGL. Debalina Bhattacharjee Sharan Ashwathnarayan
53023 - EGLSTREAMS: INTEROPERABILITY FOR CAMERA, CUDA AND OPENGL Debalina Bhattacharjee Sharan Ashwathnarayan Tegra SOC and typical use-cases Why Interops EGLStream and Its Key Features Agenda Examples
More informationProfiling and Debugging Games on Mobile Platforms
Profiling and Debugging Games on Mobile Platforms Lorenzo Dal Col Senior Software Engineer, Graphics Tools Gamelab 2013, Barcelona 26 th June 2013 Agenda Introduction to Performance Analysis with ARM DS-5
More informationInput/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security
Input/Output Today Principles of I/O hardware & software I/O software layers Disks Next Protection & Security Operating Systems and I/O Two key operating system goals Control I/O devices Provide a simple,
More informationCHAPTER 8 - MEMORY MANAGEMENT STRATEGIES
CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide
More informationVirtual to physical address translation
Virtual to physical address translation Virtual memory with paging Page table per process Page table entry includes present bit frame number modify bit flags for protection and sharing. Page tables can
More informationCS 261 Fall Mike Lam, Professor. Virtual Memory
CS 261 Fall 2016 Mike Lam, Professor Virtual Memory Topics Operating systems Address spaces Virtual memory Address translation Memory allocation Lingering questions What happens when you call malloc()?
More informationMali Developer Resources. Kevin Ho ARM Taiwan FAE
Mali Developer Resources Kevin Ho ARM Taiwan FAE ARM Mali Developer Tools Software Development SDKs for OpenGL ES & OpenCL OpenGL ES Emulators Shader Development Studio Shader Library Asset Creation Texture
More informationChapter 8: Main Memory. Operating System Concepts 9 th Edition
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationThe Mobile Internet: The Potential of Handhelds to Bring Internet to the Masses. April 2008
The Mobile Internet: The Potential of Handhelds to Bring Internet to the Masses April 2008 Agenda Today s Mobile Internet Market Mobile Convergence Products Internet Browsing on a Handheld Separating Fact
More informationAOSP Devboard Update & Recent/Future Pain Points. John Stultz
AOSP Devboard Update & Recent/Future Pain Points John Stultz Now there are two: https://source.android.com/source/devices HiKey HiKey960 Hardware overview HiKey HiSilicon Kirin
More informationTizen 3.0 's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0 's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver (libtpl-egl, vulkan-wsi-tizen) Mun Gwan-gyeong Software R&D Center Samsung Electronics Agenda Tizen 3.0 Window System Architecture
More informationCIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Fall 2017
CIS 5512 - Operating Systems I/O Systems & Secondary Storage Professor Qiang Zeng Fall 2017 Previous class Memory subsystem How to allocate physical memory? How to do address translation? How to be quick?
More informationHETEROGENEOUS MEMORY MANAGEMENT. Linux Plumbers Conference Jérôme Glisse
HETEROGENEOUS MEMORY MANAGEMENT Linux Plumbers Conference 2018 Jérôme Glisse EVERYTHING IS A POINTER All data structures rely on pointers, explicitly or implicitly: Explicit in languages like C, C++,...
More informationA novel way to efficiently simulate complex full systems incorporating hardware accelerators
ARM Research Summit 2017 Workshop A novel way to efficiently simulate complex full systems incorporating hardware accelerators Nikolaos Tampouratzis Technical University of Crete, Greece Motivation / The
More informationChapter 8: Main Memory
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationOpenMAX AL, OpenSL ES
Copyright Khronos Group, 2011 - Page 1 OpenMAX AL, OpenSL ES Native Multimedia in Android Erik Noreke Chair of OpenMAX AL and OpenSL ES Working Groups Copyright Khronos Group, 2011 - Page 2 Why Create
More informationXen Automotive Hypervisor Automotive Linux Summit 1-2 July, Tokyo
Xen Automotive Hypervisor Automotive Linux Summit 1-2 July, Tokyo 2014 GlobalLogic Inc. Vehicles are Changing Vehicle became the ultimate mobile device and we, the people, are becoming connected drivers
More informationTHE LEADER IN VISUAL COMPUTING
MOBILE EMBEDDED THE LEADER IN VISUAL COMPUTING 2 TAKING OUR VISION TO REALITY HPC DESIGN and VISUALIZATION AUTO GAMING 3 BEST DEVELOPER EXPERIENCE Tools for Fast Development Debug and Performance Tuning
More informationMemory Mapping. Sarah Diesburg COP5641
Memory Mapping Sarah Diesburg COP5641 Memory Mapping Translation of address issued by some device (e.g., CPU or I/O device) to address sent out on memory bus (physical address) Mapping is performed by
More informationECE 598 Advanced Operating Systems Lecture 14
ECE 598 Advanced Operating Systems Lecture 14 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 22 March 2018 HW#6 was due. Announcements HW#7 will be posted eventually. Project
More informationI/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)
I/O Devices Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) Hardware Support for I/O CPU RAM Network Card Graphics Card Memory Bus General I/O Bus (e.g., PCI) Canonical Device OS reads/writes
More informationVirtual Memory. CS 3410 Computer System Organization & Programming
Virtual Memory CS 3410 Computer System Organization & Programming These slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. Where are we now and
More informationDongjun Shin Samsung Electronics
2014.10.31. Dongjun Shin Samsung Electronics Contents 2 Background Understanding CPU behavior Experiments Improvement idea Revisiting Linux I/O stack Conclusion Background Definition 3 CPU bound A computer
More informationCopyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics
1 Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics Intro Tizen Linux kernel based Embedded OS for wide range of devices, where Mobile, Wearable, TV are maintained as
More informationProfiling and Debugging OpenCL Applications with ARM Development Tools. October 2014
Profiling and Debugging OpenCL Applications with ARM Development Tools October 2014 1 Agenda 1. Introduction to GPU Compute 2. ARM Development Solutions 3. Mali GPU Architecture 4. Using ARM DS-5 Streamline
More informationDepartment of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware.
Department of Computer Science, Institute for System Architecture, Operating Systems Group Real-Time Systems '08 / '09 Hardware Marcus Völp Outlook Hardware is Source of Unpredictability Caches Pipeline
More informationUBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD
UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD Chuck Silvers The NetBSD Project chuq@chuq.com, http://www.netbsd.org/ Abstract This paper introduces UBC ( Unified Buffer Cache ),
More informationECE 571 Advanced Microprocessor-Based Design Lecture 12
ECE 571 Advanced Microprocessor-Based Design Lecture 12 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 1 March 2018 HW#6 will be posted Project will be coming up Announcements
More informationChapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition
Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation
More informationThe Benefits of GPU Compute on ARM Mali GPUs
The Benefits of GPU Compute on ARM Mali GPUs Tim Hartley 1 SEMICON Europa 2014 ARM Introduction World leading semiconductor IP Founded in 1990 1060 processor licenses sold to more than 350 companies >
More informationMemory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts
Memory management Last modified: 26.04.2016 1 Contents Background Logical and physical address spaces; address binding Overlaying, swapping Contiguous Memory Allocation Segmentation Paging Structure of
More informationOperating Systems. IV. Memory Management
Operating Systems IV. Memory Management Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Basics of Memory Management Hardware Architecture
More informationAdvanced Computer Networks. End Host Optimization
Oriana Riva, Department of Computer Science ETH Zürich 263 3501 00 End Host Optimization Patrick Stuedi Spring Semester 2017 1 Today End-host optimizations: NUMA-aware networking Kernel-bypass Remote Direct
More informationChapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Seventh Edition By William Stallings Course Outline & Marks Distribution Hardware Before mid Memory After mid Linux
More informationAdding Advanced Shader Features and Handling Fragmentation
Copyright Khronos Group, 2010 - Page 1 Adding Advanced Shader Features and Handling Fragmentation How to enable your application on a wide range of devices Imagination Technologies Copyright Khronos Group,
More informationCIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Spring 2018
CIS 3207 - Operating Systems I/O Systems & Secondary Storage Professor Qiang Zeng Spring 2018 Previous class Memory subsystem How to allocate physical memory? How to do address translation? How to be quick?
More informationIntegrating CPU and GPU, The ARM Methodology. Edvard Sørgård, Senior Principal Graphics Architect, ARM Ian Rickards, Senior Product Manager, ARM
Integrating CPU and GPU, The ARM Methodology Edvard Sørgård, Senior Principal Graphics Architect, ARM Ian Rickards, Senior Product Manager, ARM The ARM Business Model Global leader in the development of
More informationBackground: I/O Concurrency
Background: I/O Concurrency Brad Karp UCL Computer Science CS GZ03 / M030 5 th October 2011 Outline Worse Is Better and Distributed Systems Problem: Naïve single-process server leaves system resources
More informationUI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL
UI, Graphics & EFL Carsten Haitzler Principal Engineer Samsung Electronics Korea c.haitzler@samsung.com Founder/Leader Enlightenment / EFL Display System Overview Graphics 4 Graphics Old-School FB 5 In
More informationEmbedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics
Embedded Linux UI Comparison Tim Bird Senior Staff Software Engineer Sony Electronics 1 yyyy-mm-dd Agenda Embedded Linux UI options Comparison points Presence at ELC Evaluations
More informationI/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13
I/O Handling ECE 650 Systems Programming & Engineering Duke University, Spring 2018 Based on Operating Systems Concepts, Silberschatz Chapter 13 Input/Output (I/O) Typical application flow consists of
More informationI/O. Disclaimer: some slides are adopted from book authors slides with permission 1
I/O Disclaimer: some slides are adopted from book authors slides with permission 1 Thrashing Recap A processes is busy swapping pages in and out Memory-mapped I/O map a file on disk onto the memory space
More informationPROCESS VIRTUAL MEMORY PART 2. CS124 Operating Systems Winter , Lecture 19
PROCESS VIRTUAL MEMORY PART 2 CS24 Operating Systems Winter 25-26, Lecture 9 2 Virtual Memory Abstraction Last time, officially introduced concept of virtual memory Programs use virtual addresses to refer
More informationCommunication Patterns in Safety Critical Systems for ADAS & Autonomous Vehicles Thorsten Wilmer Tech AD Berlin, 5. March 2018
Communication Patterns in Safety Critical Systems for ADAS & Autonomous Vehicles Thorsten Wilmer Tech AD Berlin, 5. March 2018 Agenda Motivation Introduction of Safety Components Introduction to ARMv8
More informationReducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip
Reducing Hit Times Critical Influence on cycle-time or CPI Keep L1 small and simple small is always faster and can be put on chip interesting compromise is to keep the tags on chip and the block data off
More information