Memory Management in Tizen. SW Platform Team, SW R&D Center

Size: px
Start display at page:

Download "Memory Management in Tizen. SW Platform Team, SW R&D Center"

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 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 information

DRM(Direct Rendering Manager) of Tizen Kernel Joonyoung Shim

DRM(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 information

Exporting virtual memory as dmabuf. Nikhil Devshatwar Texas Instruments, India

Exporting 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 information

Display and Kernel Review and Future

Display 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 information

The Linux graphics stack, Optimus and the Nouveau driver

The 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 information

Tizen Overview (Tizen Ver. 2.3)

Tizen 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 information

Porting Tizen-IVI 3.0 to an ARM based SoC Platform

Porting 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 information

Efficient Video Processing on Embedded GPU

Efficient 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 information

Porting 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. 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 information

Linux DRM Developer s Guide

Linux 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 information

Marek Szyprowski Samsung R&D Institute Poland

Marek 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 information

Bringing display and 3D to the C.H.I.P computer

Bringing 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 information

Methods to protect proprietary components in device drivers

Methods 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 information

Sync 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 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 information

Embedded 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 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 information

Bringing display and 3D to the C.H.I.P computer

Bringing 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 information

Embedded Linux Conference EU Complex Cameras on Linux. Mauro Carvalho Chehab. Oct, SRBR Samsung R&D Institute Brazil

Embedded 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 information

4K Video Processing and Streaming Platform on TX1

4K 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 information

4K HEVC Video Processing with GPU Optimization on Jetson TX1

4K 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 information

4K Video Processing and Streaming Platform on TX1

4K 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 information

Linux DRM Developer s Guide

Linux 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 information

GCMA: Guaranteed Contiguous Memory Allocator. SeongJae Park

GCMA: 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 information

Video4Linux: Current Status and Future Work

Video4Linux: 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 information

Case 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 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 information

Contiguous memory allocation in Linux user-space

Contiguous 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 information

Generic Buffer Sharing Mechanism for Mediated Devices

Generic 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 information

Bringing 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 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 information

Graphics Stack Update

Graphics 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 information

EXPLICIT SYNCHRONIZATION

EXPLICIT 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 information

CIS Operating Systems Memory Management Cache and Demand Paging. Professor Qiang Zeng Spring 2018

CIS 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 information

Simple Plugin API. Wim Taymans Principal Software Engineer October 10, Pinos Wim Taymans

Simple 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 information

Input / Output. Kevin Webb Swarthmore College April 12, 2018

Input / 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 information

Multimedia SoC System Solutions

Multimedia 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 information

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017

CIS 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 information

Integrating DMA Into the Generic Device Model

Integrating 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 information

QoS Handling with DVFS (CPUfreq & Devfreq)

QoS 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 information

Media Controller (MC) and OMAP2+ Display Subsystem (DSS) Embedded Linux Conference, SFO, 2011 Sumit Semwal

Media 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 information

Multimedia in Mobile Phones. Architectures and Trends Lund

Multimedia 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 information

Designing with NXP i.mx8m SoC

Designing 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 information

I/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 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 information

Spring 2017 :: CSE 506. Device Programming. Nima Honarmand

Spring 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 information

PRIME Synchronization. XDC 2016 Alex Goins, Andy Ritger

PRIME 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 information

Throughput 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 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 information

Porting Nouveau to Tegra K1

Porting 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 information

The future of X.Org on non-gnu/linux systems

The 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 information

SFO15-200: TEE kernel driver

SFO15-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 information

Chapter 8: Main Memory

Chapter 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 information

Under The Hood: Performance Tuning With Tizen. Ravi Sankar Guntur

Under 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 information

Embedded 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 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 information

Chapter 8: Memory-Management Strategies

Chapter 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 information

Running Android on the Mainline Graphics Stack. Robert

Running 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 information

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2015

CIS 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 information

Improve VNF safety with Vhost-User/DPDK IOMMU support

Improve 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 information

Connecting with Tizen : An Overview & Roadmap. Mohan Rao

Connecting 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 information

A Linux multimedia platform for SH-Mobile processors

A 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 information

EGLSTREAMS: INTEROPERABILITY FOR CAMERA, CUDA AND OPENGL. Debalina Bhattacharjee Sharan Ashwathnarayan

EGLSTREAMS: 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 information

Profiling and Debugging Games on Mobile Platforms

Profiling 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 information

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security

Input/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 information

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

CHAPTER 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 information

Virtual to physical address translation

Virtual 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 information

CS 261 Fall Mike Lam, Professor. Virtual Memory

CS 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 information

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Mali 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 information

Chapter 8: Main Memory. Operating System Concepts 9 th Edition

Chapter 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 information

The 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 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 information

AOSP Devboard Update & Recent/Future Pain Points. John Stultz

AOSP 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 information

Tizen 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 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 information

CIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Fall 2017

CIS 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 information

HETEROGENEOUS MEMORY MANAGEMENT. Linux Plumbers Conference Jérôme Glisse

HETEROGENEOUS 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 information

A novel way to efficiently simulate complex full systems incorporating hardware accelerators

A 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 information

Chapter 8: Main Memory

Chapter 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 information

OpenMAX AL, OpenSL ES

OpenMAX 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 information

Xen Automotive Hypervisor Automotive Linux Summit 1-2 July, Tokyo

Xen 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 information

THE LEADER IN VISUAL COMPUTING

THE 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 information

Memory Mapping. Sarah Diesburg COP5641

Memory 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 information

ECE 598 Advanced Operating Systems Lecture 14

ECE 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 information

I/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) 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 information

Virtual Memory. CS 3410 Computer System Organization & Programming

Virtual 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 information

Dongjun Shin Samsung Electronics

Dongjun 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 information

Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

Copyright 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 information

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Profiling 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 information

Department 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. 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 information

UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD

UBC: 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 information

ECE 571 Advanced Microprocessor-Based Design Lecture 12

ECE 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 information

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Chapter 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 information

The Benefits of GPU Compute on ARM Mali GPUs

The 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 information

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts

Memory 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 information

Operating Systems. IV. Memory Management

Operating 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 information

Advanced Computer Networks. End Host Optimization

Advanced 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 information

Chapter 1 Computer System Overview

Chapter 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 information

Adding Advanced Shader Features and Handling Fragmentation

Adding 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 information

CIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Spring 2018

CIS 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 information

Integrating 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 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 information

Background: I/O Concurrency

Background: 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 information

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

UI, 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 information

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

Embedded 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 information

I/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 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 information

I/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 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 information

PROCESS VIRTUAL MEMORY PART 2. CS124 Operating Systems Winter , Lecture 19

PROCESS 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 information

Communication 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 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 information

Reducing 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. 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