Kernel HW KABI Tools Tony Camuso Aug 20, 2015 INTERNAL ONLY

Slides:



Advertisements
Similar presentations
The Assembly Language Level
Advertisements

Continuous Improvement Story Cover Page The cover page is the title page Rapid Process Improvement Story Template O Graphics are optional This CI Story.
An Introduction to Forms. The Major Steps of a MicroSoft Access Database  Tables  Queries  Forms  Macros  Reports  Modules On our road map, we are.
UTA/ARRI. Enterprise Engineering for The Agile Enterprise Don Liles The University of Texas at Arlington.
Chapter ©2011 Cengage Learning. All Rights Reserved. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 18 – Linking and Libraries.
B121 Chapter 6 Effective Ways of Displaying Information.
Getting Started with Flow
The Collaborative Story
Finding Magazine & Newspaper Articles in a Library Database
Development Environment
Prepared By: Bobby Wan Microsoft Access Prepared By: Bobby Wan
Kernel HW KABI Tools Tony Camuso Aug 20, 2015 EXERCISE - STEP 1 INTRO:
Personal Selling.
Current Generation Hypervisor Type 1 Type 2.
Customer Service, Balanced Scorecards: The Road to Becoming a Service-Oriented Organization 1.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Consultation: Your Say ….
Indexing ? Why ? Need to locate the actual records on disk without having to read the entire table into memory.
SOFTWARE DESIGN AND ARCHITECTURE
SAMPLE Develop a Comprehensive Competency Framework
Agenda Time Activity 1410 Welcome and introductions 1415
Building the foundations for innovation
Troubleshooting SQL Server When You Cannot Access The Machine
Power Management 'res publica'
Fundamentals & Ethics of Information Systems IS 201
Introduction to System Analysis and Design
Impacting Saginaw County.
Using IMPROV to IMPROVE your Communication
Semester Review Chris Gill CSE 422S - Operating Systems Organization
Facilitation guide for Building Team EQ skills.
Good morning, welcome, and thank you for the opportunity to meet with you for a few minutes. This is a great event planned for this week, and on behalf.
Chapter 2: Database System Concepts and Architecture
ITE 130 Web Searching.
Notes for helpers Supporting everyone to tell their story
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2: The Linux System Part 2
Guide To UNIX Using Linux Third Edition
Chapter 2: System Structures
Cse 344 APRIL 23RD – Indexing.
Higher-Level Testing and Integration Testing
Google Slides Fundamentals
Regional Architecture Development for Intelligent Transportation
Regional Architecture Development for Intelligent Transportation
Chapter 2: The Linux System Part 1
Unit 6: Application Development
Software Architecture
Chapter 5 Architectural Design.
The Future of Data Dissemination at the U.S. Census Bureau
Database Systems Instructor Name: Lecture-3.
They work hand-in-hand.
The Linux Command Line Chapter 17
Multithreaded Programming
Reflective Presentation
CTI STIX SC Monthly Meeting
Communicating In Groups
Discussing an OVS/OVN Split
The ultimate in data organization
My Top Five Themes – Mark Neff
Optimist International
Automating Profitable Growth™
Databases This topic looks at the basic concept of a database, the key features and benefits of a Database Management System (DBMS) and the basic theory.
CORE 3: Unit 3 - Part D Change depends on…
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
Tree A tree is a data structure in which each node is comprised of some data as well as node pointers to child nodes
Reviewing organizational policies with an equity lens
UNDERSTANDING MILLENNIAL INSURANCE CONSUMERS
Task 62 Scope – Config / Operational State
Critical, creative and problem solving skills
Presentation transcript:

Kernel HW KABI Tools Tony Camuso Aug 20, 2015 INTERNAL ONLY EXERCISE - STEP 1 INTRO: I'm here today to talk to you about the value of having a relationship with Red Hat. [ Whiteboard Exercise ] Before we get started, I want to capture a few thoughts you may have about what Red Hat is today. Possibly some of the following words: [ Write examples in a single column as you say them ] Linux Open source Jboss Low-cost Performance Freedom This is all true, and it's part of what of we offer, but but what we want to talk to you about today is something more compelling that Red Hat has to offer from a value and relationship perspective. INTERNAL ONLY

What's the problem? No easy way to determine KABI dependencies kernel wide. Need to view the dependency tree from exported symbols down to all the compound data types they depend on. Need to view the dependency tree from compound data types up to their dependent exported symbols. Need to determine if changes to a subordinate compound data type can affect a whitelisted symbol. [ EXERCISE - STEP 2 ] But rather than have me alone tell this story. I want to take a few moments have you hear from one of our customers, Steve Rubinow from the New York Stock Exchange. [PLAY NYSE VIDEO. - While the video is playing, write key words or themes spoken by Rubinow, but write them in a second, column next to the first list. ] Performance Mission critical Brainstorming Our best minds, their best minds together Technology innovation Good interoperability Advising us the best way to use it We can count on Leader Support Extremely strategic What you heard from Steve is that Red Hat to the New York Stock Exchange is more than just particular products or particular technologies. It's about working closely with a trusted advisor to understand technology and the impact in your organization. About creating a relationship that combines your expertise and Red Hat's knowledge and leadership. Ultimately, this is what we'd like you to understand about the type of relationship we'd like to have with you as a customer. Internal Only

Proposed Solution Create a database of all exported symbols and their dependencies. Create the database as part of the build process or independently as an ancillary process. Create a tool to query the data base for exported symbols and the data structures in their hierarchy. [ EXERCISE - STEP 2 ] But rather than have me alone tell this story. I want to take a few moments have you hear from one of our customers, Steve Rubinow from the New York Stock Exchange. [PLAY NYSE VIDEO. - While the video is playing, write key words or themes spoken by Rubinow, but write them in a second, column next to the first list. ] Performance Mission critical Brainstorming Our best minds, their best minds together Technology innovation Good interoperability Advising us the best way to use it We can count on Leader Support Extremely strategic What you heard from Steve is that Red Hat to the New York Stock Exchange is more than just particular products or particular technologies. It's about working closely with a trusted advisor to understand technology and the impact in your organization. About creating a relationship that combines your expertise and Red Hat's knowledge and leadership. Ultimately, this is what we'd like you to understand about the type of relationship we'd like to have with you as a customer. Internal Only

Proposed Solution (cont) Uses preprocessor output files, which include all headers with all typedef and macro expansions for each corresponding source file. The generated data files comprise a comprehensive graph of all exported symbols and all their dependencies. Internal Only

Why use THIS tool? Able to relate lowest level data structures to any exported symbols that depend on them. Can detail the entire dependency tree of any exported symbol or any data structure. Provides command line options to limit search scope to directories, files, and the kabi whitelists. Provides a verbose option to display entire hierarchies. Imposes a 'dups' policy to limit output when encountering duplications. Internal Only

Internal Only

Internal Only

Show exported symbols affected by data structure -slw : struct, limited to whitelist, whole word search (exact match) -m fs/bio : limit search to path having substring “fs/bio” Internal Only

Another struct search Show exported symbols affected by structs with 'struct device' as part of their name. Limit search to files and directories with 'pci' substring, and limit output to first 20 lines. Search for declaration of 'struct class' and grep for 'struct device'. Internal Only

Search for exported symbol Search for exported 'struct bio_set' and see its top level dependencies. See if 'struct bio_set' is in the kabi whitelist. Internal Only

Find whitelisted function pci_iomap Then show its dependency tree Internal Only

RHEL7 Kernel Compile Times System Without kabi-parser With kabi-parser % change intel workstation core 860 @ 2.8GHz 4 cores (8 HT) 16 G DDR3 15:49 (15.82) 17:07 (17.12) 8.2 amd dinar opteron 6386 @ 1.4GHz 32 cores 32 G DDR3 4:25 (4.42) 4:57 (4.95) 12.1 Internal Only

Search Times Substring search for popular struct (generates lots of output) Exact match search for same takes about 2 seconds less. Internal Only

Search Times (cont) Longest search times are typically less than a minute. At this time, searches are disk intensive, so cpu cores and memory have little impact on performance. SSD should improve search times considerably. Slurping the whole database for each search is impractical, though it might be useful for an interactive version of the tool. Internal Only

Improving Search Performance Under consideration Second level database that maps symbols to the files that contain them. Threaded search Memory mapped database files Internal Only

Implementation kabi-parser Uses sparse semantic parser to tokenize precompiled sources that contain exported symbols. Used by kernel make for source checking (C=1, C=2) Maintained upstream. Uses boost to serialize the sparse output for precompiled source files. Invoked by kernel make for each source file. makei.sh and kabi-data.sh are scripts for creating the precompiled sources and data files outside of the kernel build. [ EXERCISE - STEP 2 ] But rather than have me alone tell this story. I want to take a few moments have you hear from one of our customers, Steve Rubinow from the New York Stock Exchange. [PLAY NYSE VIDEO. - While the video is playing, write key words or themes spoken by Rubinow, but write them in a second, column next to the first list. ] Performance Mission critical Brainstorming Our best minds, their best minds together Technology innovation Good interoperability Advising us the best way to use it We can count on Leader Support Extremely strategic What you heard from Steve is that Red Hat to the New York Stock Exchange is more than just particular products or particular technologies. It's about working closely with a trusted advisor to understand technology and the impact in your organization. About creating a relationship that combines your expertise and Red Hat's knowledge and leadership. Ultimately, this is what we'd like you to understand about the type of relationship we'd like to have with you as a customer. Internal Only

Implementation (cont) kabi-lookup Uses boost to deserialize the data files into a container (std::map). Partial or whole word searches. Searches can be limited to symbols in the kabi whitelists. Searches can be limited to specific directories or files by using a path mask option. [ EXERCISE - STEP 2 ] But rather than have me alone tell this story. I want to take a few moments have you hear from one of our customers, Steve Rubinow from the New York Stock Exchange. [PLAY NYSE VIDEO. - While the video is playing, write key words or themes spoken by Rubinow, but write them in a second, column next to the first list. ] Performance Mission critical Brainstorming Our best minds, their best minds together Technology innovation Good interoperability Advising us the best way to use it We can count on Leader Support Extremely strategic What you heard from Steve is that Red Hat to the New York Stock Exchange is more than just particular products or particular technologies. It's about working closely with a trusted advisor to understand technology and the impact in your organization. About creating a relationship that combines your expertise and Red Hat's knowledge and leadership. Ultimately, this is what we'd like you to understand about the type of relationship we'd like to have with you as a customer. Internal Only

Where is it? Latest rpms: http://people.redhat.com/tcamuso/kabitools/ Git repo: https://github.com/camuso/kabitools Report problems and feature requests to https://github.com/camuso/kabitools/issues Internal Only