Sergei Trofimovich «Valgrind overview: runtime memory checker and a bit more aka использование #valgrind на селе»
Доклад на майской линуксовке MLUG 2013
Valgrind is a GPL'd system for debugging and profiling Linux programs. With Valgrind's tool suite you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling to help speed up your programs.
Learn about Linux on System z debugging with Valgrind, one of the most prominent debugging tools for Linux.For more information, visit http://ibm.co/PNo9Cb.
These slides cover how a debugger sets breakpoints on a debuggee process. I presented these slides at the Thursday evening 5-minutes-presentations at Recurse Center.
Here's a more detailed explanation on the topic - http://majantali.net/2016/10/how-breakpoints-are-set/
Interesting Observations (7 Sins of Programmers); The compiler is to blame; Archeological strata; The last line effect; Programmers are the smartest; Security, security! But do you test it?; You can’t know everything; Seeking a silver bullet.
After hot discussions on the article about "The Big Calculator" I felt like checking some other projects related to scientific computations. The first program that came to hand was the open-source project OpenMS dealing with protein mass spectrometry. This project appeared to have been written in a very serious and responsible way. Developers use at least Cppcheck to analyze their project. That's why I didn't hope to find anything sensational left unnoticed by that tool. On the other hand, I was curious to see what bugs PVS-Studio would be able to find in the code after Cppcheck. If you want to know this too, follow me.
Valgrind is a GPL'd system for debugging and profiling Linux programs. With Valgrind's tool suite you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling to help speed up your programs.
Learn about Linux on System z debugging with Valgrind, one of the most prominent debugging tools for Linux.For more information, visit http://ibm.co/PNo9Cb.
These slides cover how a debugger sets breakpoints on a debuggee process. I presented these slides at the Thursday evening 5-minutes-presentations at Recurse Center.
Here's a more detailed explanation on the topic - http://majantali.net/2016/10/how-breakpoints-are-set/
Interesting Observations (7 Sins of Programmers); The compiler is to blame; Archeological strata; The last line effect; Programmers are the smartest; Security, security! But do you test it?; You can’t know everything; Seeking a silver bullet.
After hot discussions on the article about "The Big Calculator" I felt like checking some other projects related to scientific computations. The first program that came to hand was the open-source project OpenMS dealing with protein mass spectrometry. This project appeared to have been written in a very serious and responsible way. Developers use at least Cppcheck to analyze their project. That's why I didn't hope to find anything sensational left unnoticed by that tool. On the other hand, I was curious to see what bugs PVS-Studio would be able to find in the code after Cppcheck. If you want to know this too, follow me.
100 bugs in Open Source C/C++ projects Andrey Karpov
This article demonstrates capabilities of the static code analysis methodology. The readers are offered to study the samples of one hundred errors found in open-source projects in C/C++.
Heading for a Record: Chromium, the 5th CheckPVS-Studio
We checked Chromium more than once before, and those who follow our blog could reasonably ask, "Why another check? Weren't there enough of them?" Sure, Chromium's source code is particularly clean, which was shown by each of the previous checks, but new errors inevitably continue to appear. Repeated checks prove that the more often you use static analysis, the better. A good practice is to use the analyzer every day. An even better practice is to analyze the new code right after you finish writing it (automatic analysis of recently modified code).
Evgeniy Muralev, Mark Vince, Working with the compiler, not against itSergey Platonov
The talk will look at limitations of compilers when creating fast code and how to make more effective use of both the underlying micro-architecture of modern CPU's and how algorithmic optimizations may have surprising effects on the generated code. We shall discuss several specific CPU architecture features and their pros and cons in relation to creating fast C++ code. We then expand with several algorithmic techniques, not usually well-documented, for making faster, compiler friendly, C++.
Note that we shall not discuss caching and related issues here as they are well documented elsewhere.
Дмитрий Демчук. Кроссплатформенный краш-репортSergey Platonov
Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.
"Why is there no artificial intelligence yet?" Or, analysis of CNTK tool kit ...PVS-Studio
Microsoft have given open access to the source code of a tool kit that is used in the company to speed up the development of artificial intelligence: Computational Network Toolkit is now available at Github. The developers had to create their own custom solution, because the existing tools did not work fast enough.
Checking Intel IPP Samples for Windows - ContinuationPVS-Studio
The progress keeps on going. My favorite static code analyzer PVS-Studio is developing too. It has occurred to me recently that those projects we already checked, we can well check again. It would be strange if we wrote articles on this topic, and they would hardly be interesting. But I think we can write one: it will become one more argument for the idea that you can get real benefit from static analysis only using it regularly and not from time to time. So, let's see what new interesting things we have managed to find in the Intel IPP Samples project.
A Check of the Open-Source Project WinSCP Developed in Embarcadero C++ BuilderAndrey Karpov
We regularly check open-source C/C++ projects, but what we check are mostly projects developed in the Visual Studio IDE. For some reason, we haven't paid much attention to the Embarcadero C++ Builder IDE. In order to improve this situation, we are going to discuss the WinSCP project I have checked recently.
P.S. C++ Builder support in PVS-Studio had been dropped after version 5.20. If you have any questions, feel free to contact our support.
Top 10 bugs in C++ open source projects, checked in 2016PVS-Studio
While the world is discussing the 89th Ceremony of Oscar award and charts of actors and costumes, we've decided to write a review article about the IT-sphere. The article is going to cover the most interesting bugs, made in open source projects in 2016. This year was remarkable for our tool, as PVS-Studio has become available on Linux OS. The errors we present are hopefully, already fixed, but every reader can see how serious are the errors made by developers.
Linux version of PVS-Studio couldn't help checking CodeLitePVS-Studio
As is already known to our readers, PVS-Studio static analyzer is exploring a new development direction - the Linux platform; as you may have noticed from the previous articles, it is doing well. This article shows how easily you can check a project with the help of the Linux version of the analyzer, because the simpler PVS-Studio for Linux is, the more supporters it will have. This time our choice was the CodeLite project. CodeLite was compiled and tested in Linux. Let's see what results we got.
PVS-Studio delved into the FreeBSD kernelPVS-Studio
About a year ago we checked the Linux core. It was one of the most discussed articles at that time. We also got quite a number of requests to check FreeBSD, so finally we decided to take the time to do it.
This is a small note on the results of checking the OpenSSL project with the PVS-Studio analyzer. I analyzed the openssl-0.9.8-stable-SNAP-20121208 version.
Linux Kernel, tested by the Linux-version of PVS-StudioPVS-Studio
Since the release of the publicly available Linux-version of PVS-Studio, it was just a matter of time until we would recheck the Linux kernel. It is quite a challenge for any static code analyzer to check a project written by professionals from all around the world, used by people in various fields, which is regularly checked and tested by different tools. So, what errors did we manage to find in such conditions?
Intel IPP Samples for Windows - error correctionAndrey Karpov
This is one of my posts on how PVS-Studio makes programs safer. That is where and what types of errors it detects. This time it is samples demonstrating handling of the IPP 7.0 library (Intel Performance Primitives Library) we are going to examine.
100 bugs in Open Source C/C++ projects Andrey Karpov
This article demonstrates capabilities of the static code analysis methodology. The readers are offered to study the samples of one hundred errors found in open-source projects in C/C++.
Heading for a Record: Chromium, the 5th CheckPVS-Studio
We checked Chromium more than once before, and those who follow our blog could reasonably ask, "Why another check? Weren't there enough of them?" Sure, Chromium's source code is particularly clean, which was shown by each of the previous checks, but new errors inevitably continue to appear. Repeated checks prove that the more often you use static analysis, the better. A good practice is to use the analyzer every day. An even better practice is to analyze the new code right after you finish writing it (automatic analysis of recently modified code).
Evgeniy Muralev, Mark Vince, Working with the compiler, not against itSergey Platonov
The talk will look at limitations of compilers when creating fast code and how to make more effective use of both the underlying micro-architecture of modern CPU's and how algorithmic optimizations may have surprising effects on the generated code. We shall discuss several specific CPU architecture features and their pros and cons in relation to creating fast C++ code. We then expand with several algorithmic techniques, not usually well-documented, for making faster, compiler friendly, C++.
Note that we shall not discuss caching and related issues here as they are well documented elsewhere.
Дмитрий Демчук. Кроссплатформенный краш-репортSergey Platonov
Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.
"Why is there no artificial intelligence yet?" Or, analysis of CNTK tool kit ...PVS-Studio
Microsoft have given open access to the source code of a tool kit that is used in the company to speed up the development of artificial intelligence: Computational Network Toolkit is now available at Github. The developers had to create their own custom solution, because the existing tools did not work fast enough.
Checking Intel IPP Samples for Windows - ContinuationPVS-Studio
The progress keeps on going. My favorite static code analyzer PVS-Studio is developing too. It has occurred to me recently that those projects we already checked, we can well check again. It would be strange if we wrote articles on this topic, and they would hardly be interesting. But I think we can write one: it will become one more argument for the idea that you can get real benefit from static analysis only using it regularly and not from time to time. So, let's see what new interesting things we have managed to find in the Intel IPP Samples project.
A Check of the Open-Source Project WinSCP Developed in Embarcadero C++ BuilderAndrey Karpov
We regularly check open-source C/C++ projects, but what we check are mostly projects developed in the Visual Studio IDE. For some reason, we haven't paid much attention to the Embarcadero C++ Builder IDE. In order to improve this situation, we are going to discuss the WinSCP project I have checked recently.
P.S. C++ Builder support in PVS-Studio had been dropped after version 5.20. If you have any questions, feel free to contact our support.
Top 10 bugs in C++ open source projects, checked in 2016PVS-Studio
While the world is discussing the 89th Ceremony of Oscar award and charts of actors and costumes, we've decided to write a review article about the IT-sphere. The article is going to cover the most interesting bugs, made in open source projects in 2016. This year was remarkable for our tool, as PVS-Studio has become available on Linux OS. The errors we present are hopefully, already fixed, but every reader can see how serious are the errors made by developers.
Linux version of PVS-Studio couldn't help checking CodeLitePVS-Studio
As is already known to our readers, PVS-Studio static analyzer is exploring a new development direction - the Linux platform; as you may have noticed from the previous articles, it is doing well. This article shows how easily you can check a project with the help of the Linux version of the analyzer, because the simpler PVS-Studio for Linux is, the more supporters it will have. This time our choice was the CodeLite project. CodeLite was compiled and tested in Linux. Let's see what results we got.
PVS-Studio delved into the FreeBSD kernelPVS-Studio
About a year ago we checked the Linux core. It was one of the most discussed articles at that time. We also got quite a number of requests to check FreeBSD, so finally we decided to take the time to do it.
This is a small note on the results of checking the OpenSSL project with the PVS-Studio analyzer. I analyzed the openssl-0.9.8-stable-SNAP-20121208 version.
Linux Kernel, tested by the Linux-version of PVS-StudioPVS-Studio
Since the release of the publicly available Linux-version of PVS-Studio, it was just a matter of time until we would recheck the Linux kernel. It is quite a challenge for any static code analyzer to check a project written by professionals from all around the world, used by people in various fields, which is regularly checked and tested by different tools. So, what errors did we manage to find in such conditions?
Intel IPP Samples for Windows - error correctionAndrey Karpov
This is one of my posts on how PVS-Studio makes programs safer. That is where and what types of errors it detects. This time it is samples demonstrating handling of the IPP 7.0 library (Intel Performance Primitives Library) we are going to examine.
Intel and Amazon - Powering your innovation together. Eran Shlomo
In these slides we go over the current joined offering from Intel and amazon, the coming great technologies and how the two companies are creating synergy that boost your innovation and productivity.
This was presented in TLV AWS loft Mar 2017.
Silently Microsoft has become top contributor on GitHub, beats Facebook, Alphabet, Docker, Apache and other competitors. OpenSource has become omnipresent in the Microsoft product portfolio. Even Windows 10 ships now with a Linux shell.
For what it’s worth – we must take a deeper look at this uneven couple!
Within this session you will learn about
– Linux on Hyper-V
– Linux on Azure
– Linux + OpenSource on OMS
Further we will focus on the benefits this love will bring to your IT environment. Join the session and leave with a Linux Bash on your Windows 10 system!
OpenContrail, Real Speed: Offloading vRouterOpen-NFP
The OpenContrail project aims to produce an open-source platform that delivers high performance software-defined networking while integrating cleanly with existing networking equipment. Netronome has added support for transparent hardware acceleration of OpenContrail's vRouter dataplane using Agilio hardware. This talk discusses the architecture of the system as well as the components we hope to open up to the broader community. We will discuss how to support transparent offload in the context of a split dataplane as well as provisioning of NFP resources required to produce a performant solution.
Using GPUs to Achieve Massive Parallelism in Java 8Dev_Events
Adam Roberts, IBM Spark Team Lead – Runtimes, IBM Cloud
Graphic processing units (GPUs) are not limited to traditional scene rendering tasks. They can play a
huge role in accelerating applications that have a large number of parallelizable tasks.
Learn how Java can exploit the power of GPUs to optimize high-performance enterprise and technical
computing applications such as big data and analytics workloads, through both explicit GPU
programming and letting the Java JIT compiler transparently off-load work to the GPU.
This presentation covers the principles and considerations for GPU programming from Java and looks at
the software stack and developer tools available. After this talk you will be ready to extract the full
power of GPUs from your own application. We will present a demo showing GPU acceleration and
discuss what is coming in the future.
Kaum haben wir uns von dem klassischen Monolithen und der zugehörigen Ablaufumgebung namens Application Server, zugunsten von Microservices und Embedded Runtimes, verabschiedet, taucht am Horizont mit Serverless Applications bzw. Architectures schon die nächste Evolutionsstufe auf. Was bitte ist das jetzt schon wieder? Und wer braucht so etwas? Die Session zeigt, wie sich dank BaaS, FaaS und einiger anderer Akronyme, Mobile und Enterprise Anwendungen implementieren lassen ganz ohne Server! Ganz ohne? Naja, fast.
Cilium - Container Networking with BPF & XDPThomas Graf
This talk demonstrates that programmability and performance does not require user space networking, it can be achieved in the kernel by generating BPF programs and leveraging the existing kernel subsystems. We will demo an early prototype which provides fast IPv6 & IPv4 connectivity to containers, container labels based security policy with avg cost O(1), and debugging and monitoring based on the per-cpu perf ring buffer. We encourage a lively discussion on the approach taken and next steps.
Accelerating Hadoop, Spark, and Memcached with HPC Technologiesinside-BigData.com
DK Panda from Ohio State University presented this deck at the OpenFabrics Workshop.
"Modern HPC clusters are having many advanced features, such as multi-/many-core architectures, highperformance RDMA-enabled interconnects, SSD-based storage devices, burst-buffers and parallel file systems. However, current generation Big Data processing middleware (such as Hadoop, Spark, and Memcached) have not fully exploited the benefits of the advanced features on modern HPC clusters. This talk will present RDMA-based designs using OpenFabrics Verbs and heterogeneous storage architectures to accelerate multiple components of Hadoop (HDFS, MapReduce, RPC, and HBase), Spark and Memcached. An overview of the associated RDMA-enabled software libraries (being designed and publicly distributed as a part of the HiBD project for Apache Hadoop (integrated and plug-ins for Apache, HDP, and Cloudera distributions), Apache Spark and Memcached will be presented. The talk will also address the need for designing benchmarks using a multi-layered and systematic approach, which can be used to evaluate the performance of these Big Data processing middleware."
Watch the video presentation: http://wp.me/p3RLHQ-gzg
Learn more: http://hibd.cse.ohio-state.edu/
and
https://www.openfabrics.org/index.php/abstracts-agenda.html
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
BPF: Next Generation of Programmable DatapathThomas Graf
This session covers lessons learned while exploring BPF to provide a programmable datapath based on BPF and discusses options for OVS to leverage the technology.
The new runtime which Google is started implementing as developers view to implement or not which has advantages over the previous Dalvik runtime and more...
Three tricks how to understand what's happening inside of .NET Core app running on Linux: perf, lttng and lldb. As unrelated bonus, last slides have a brief intro into Google Cloud Platform
Capture the Flag (CTF) are information security challenges. They are fun, but they also provide a opportunity to practise for real-world security challenges.
In this talk we present the concept of CTF. We focus on some tools used by our team, which can also be used to solve real-world problems.
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
HotSpot promises to do the "right" thing for us by identifying our hot code and compiling "just-in-time", but how does HotSpot make those decisions?
This presentation aims to detail how HotSpot makes those decisions and how it corrects its mistakes through a series of demos that you run yourself.
Azul Virtual Machine Engineer Douglas Hawkins describes how decisions made by the JVM affect how your code is compiled and run. Learn how this affects application performance and what steps you can take to optimize how the JVM acts on your code.
Linux kernel tracing superpowers in the cloudAndrea Righi
The Linux 4.x series introduced a new powerful engine of programmable tracing (BPF) that allows to actually look inside the kernel at runtime. This talk will show you how to exploit this engine in order to debug problems or identify performance bottlenecks in a complex environment like a cloud. This talk will cover the latest Linux superpowers that allow to see what is happening “under the hood” of the Linux kernel at runtime. I will explain how to exploit these “superpowers” to measure and trace complex events at runtime in a cloud environment. For example, we will see how we can measure latency distribution of filesystem I/O, details of storage device operations, like individual block I/O request timeouts, or TCP buffer allocations, investigating stack traces of certain events, identify memory leaks, performance bottlenecks and a whole lot more.
NovaProva, a new generation unit test framework for C programsGreg Banks
I wrote NovaProva because I was sick of writing unit tests using the venerable but clunky CUnit library. CUnit looked easy when I started writing unit tests but I soon discovered it's limitations and ended up screaming in frustration. Meanwhile over 18 months the Cyrus IMAP server project has gone from 0 unit tests to 461, of which 277 are written in C with CUnit. So that's a big itch!
The why and how of moving to PHP 5.5/5.6Wim Godden
With PHP 5.6 out and many production environments still running 5.2 or 5.3, it's time to paint a clear picture on why everyone should move to 5.5 and 5.6 and how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Vladimir ’mend0za’ Shakhov — Linux firmware for iRMC controller on Fujitsu P...Minsk Linux User Group
Доклад Владимира Шахова про прошивку BMC (iRMC) серверов Fujitsu Primergy на основе Linux.
Прозвучал на сентябрьской линуксовке Minsk LUG 26 сентября 2015.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Valgrind overview: runtime memory checker and a bit more aka использование #valgrind на селе
1. Valgrind overview:
Runtime memory checker and a bit more...
What can we do with it?
Sergei Trofimovich – slyfox@gentoo.org
MLUG
Mar 30, 2013
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
2. The problem
When do we start thinking of weird bug in a program?
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
3. The problem
When do we start thinking of weird bug in a program?
the output is a random garbage
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
4. The problem
When do we start thinking of weird bug in a program?
the output is a random garbage
random SIGSEGVs
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
5. The problem
When do we start thinking of weird bug in a program?
the output is a random garbage
random SIGSEGVs
abort() messages showing ”double free()” corruption
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
7. Introduction
Meet the valgrind:
a commandline tool
$ valgrind program [args...]
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
8. Introduction
Meet the valgrind:
a commandline tool
$ valgrind program [args...]
to search bugs in binary applications
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
9. Introduction
Meet the valgrind:
a commandline tool
$ valgrind program [args...]
to search bugs in binary applications
which contain C/C++ code
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
10. Introduction
Meet the valgrind:
a commandline tool
$ valgrind program [args...]
to search bugs in binary applications
which contain C/C++ code
not scripts or bytecode
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
11. Introduction
Meet the valgrind:
a commandline tool
$ valgrind program [args...]
to search bugs in binary applications
which contain C/C++ code
not scripts or bytecode
Author: Julian Seward
compiler writer
bzip2
works on current Mozilla’s JavaScript engines
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
12. Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
13. First example: no errors
simple.c
1 int main() {
2 return 0;
3 }
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
14. First example: no errors
run-simple.sh
make simple CFLAGS=-g
valgrind ./simple # to stderr
valgrind --log-file=simple.vglog ./simple # to log
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
15. First example: no errors
simple.vglog
==14290== Memcheck, a memory error detector
==14290== Copyright (C) 2002-2012, and GNU GPL’d, by Julian Seward et al.
==14290== Using Valgrind-3.9.0.SVN and LibVEX; rerun with -h for copyright info
==14290== Command: ./simple
==14290== Parent PID: 14287
==14290==
==14290==
==14290== HEAP SUMMARY:
==14290== in use at exit: 0 bytes in 0 blocks
==14290== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==14290==
==14290== All heap blocks were freed -- no leaks are possible
==14290==
==14290== For counts of detected and suppressed errors, rerun with: -v
==14290== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
17. Simple leak
01-leaky.vglog
==14293== 42 bytes in 1 blocks are definitely lost in loss record 1 of 1
==14293== at 0x4C2C1DB: malloc (vg_replace_malloc.c:270)
==14293== by 0x4005C9: leaky (01-leaky.c:3)
==14293== by 0x4005D9: main (01-leaky.c:6)
==14293==
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
18. Use of uninitialized memory
02-uninit.c
1 int use_uninit (char * uninit) {
2 if (*uninit > 42) /* oh, what will happen ? */
3 return 24;
4 else
5 return 42;
6 }
7 int foo (void) {
8 char garbage;
9 use_uninit (&garbage);
10 }
11 int main() {
12 return foo ();
13 }
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
19. Use of uninitialized memory
02-uninit.vglog
==14297== Conditional jump or move depends on uninitialised value(s)
==14297== at 0x40052D: use_uninit (02-uninit.c:2)
==14297== by 0x400550: foo (02-uninit.c:9)
==14297== by 0x40055B: main (02-uninit.c:12)
==14297== Uninitialised value was created by a stack allocation
==14297== at 0x40053D: foo (02-uninit.c:7)
==14297==
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
20. Out of bounds access
03-oob.c
1 #include <stdlib.h> /* malloc(), free() */
2
3 int main() {
4 char * p = (char *) malloc (32);
5 *(p + 32 + 129) = ’0’; /* whoops */
6 free (p);
7 return 0;
8 }
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
21. Out of bounds access
03-oob.vglog
==14302== Invalid write of size 1
==14302== at 0x4005DC: main (03-oob.c:5)
==14302== Address 0x51d80e1 is not stack’d, malloc’d or (recently) free’d
==14302==
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
22. Helping valgrind
Sometimes compiler optimizations make the final code a complete
mess. Here is some tips to make valgrind logs more readable:
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
23. Helping valgrind
Sometimes compiler optimizations make the final code a complete
mess. Here is some tips to make valgrind logs more readable:
build your programs/libraries with -g compiler options to emit
DWARF debugging symbols (./configure CFLAGS=-g
CXXFLAGS=-g)
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
24. Helping valgrind
Sometimes compiler optimizations make the final code a complete
mess. Here is some tips to make valgrind logs more readable:
build your programs/libraries with -g compiler options to emit
DWARF debugging symbols (./configure CFLAGS=-g
CXXFLAGS=-g)
or install debugging symbols for them (if exist)
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
25. Helping valgrind
Sometimes compiler optimizations make the final code a complete
mess. Here is some tips to make valgrind logs more readable:
build your programs/libraries with -g compiler options to emit
DWARF debugging symbols (./configure CFLAGS=-g
CXXFLAGS=-g)
or install debugging symbols for them (if exist)
do not overoptimize things:
-O2 optimization reorders and inlines too much code
-O1 is usually good-enough
-O0 is likely too slow
-Og (gcc-4.8 feature) sounds promising
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
26. Helping valgrind
Sometimes compiler optimizations make the final code a complete
mess. Here is some tips to make valgrind logs more readable:
build your programs/libraries with -g compiler options to emit
DWARF debugging symbols (./configure CFLAGS=-g
CXXFLAGS=-g)
or install debugging symbols for them (if exist)
do not overoptimize things:
-O2 optimization reorders and inlines too much code
-O1 is usually good-enough
-O0 is likely too slow
-Og (gcc-4.8 feature) sounds promising
-fno-builtin is your friend as valgrind can detect more bugs in
mem*() and str*() functions.
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
27. Helping valgrind: user’s assistance
You can guide valgrind through the source code and tell him the
facts about the program he does not know.
There is a mechanism for it: /usr/include/valgrind/*.h
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
28. Helping valgrind: an example
04-helpy-uninit.c
1 static char tb[32];
2 char * get_temp_buffer () {
3 return tb;
4 }
5 void free_temp_buffer (char * b) { /* superoptimization! */ }
6 int user1 (char * b) {
7 memset (b, 32, ’A’);
8 return b[7]; /* a lot of hard work on ’b’ */
9 }
10 int user2 (char * b) {
11 /* we forgot this: memset (b, 32, ’B’); */
12 return b[7]; /* a lot of hard work on ’b’ */
13 }
14 int main() {
15 char * b; int r1, r2;
16
17 b = get_temp_buffer(); r1 = user1 (b); free_temp_buffer (b);
18 b = get_temp_buffer(); r2 = user2 (b); free_temp_buffer (b);
19 return r1 + r2;
20 }
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
29. Helping valgrind: an example
04-helpy-uninit.vglog
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
30. Helping valgrind: an example
04-helpy-uninit-2.c
1 #include <valgrind/memcheck.h>
2 static char tb[32];
3 char * get_temp_buffer () {
4 VALGRIND_MAKE_MEM_UNDEFINED(tb, 32);
5 return tb;
6 }
7 void free_temp_buffer (char * b) { /* superoptimization! */ }
8 int user1 (char * b) {
9 memset (b, 32, ’A’);
10 return b[7]; /* a lot of hard work on ’b’ */
11 }
12 int user2 (char * b) {
13 /* we forgot this: memset (b, 32, ’B’); */
14 return b[7]; /* a lot of hard work on ’b’ */
15 }
16 int main() {
17 char * b; int r1, r2;
18
19 b = get_temp_buffer(); r1 = user1 (b); free_temp_buffer (b);
20 b = get_temp_buffer(); r2 = user2 (b); free_temp_buffer (b);
21 return r1 + r2;
22 }
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
31. Helping valgrind: an example
04-helpy-uninit-2.vglog
==14306== Syscall param exit_group(status) contains uninitialised byte(s)
==14306== at 0x4EEAA79: _Exit (_exit.c:32)
==14306== by 0x4E6BC6F: __run_exit_handlers (exit.c:92)
==14306== by 0x4E6BC94: exit (exit.c:99)
==14306== by 0x4E5576B: (below main) (libc-start.c:257)
==14306== Uninitialised value was created by a client request
==14306== at 0x4007F4: get_temp_buffer (04-helpy-uninit-2.c:4)
==14306== by 0x400894: main (04-helpy-uninit-2.c:20)
==14306==
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
32. More APIs to plug into your code
valgrind-APIs.h
1 /* valgrind/memcheck.h */
2 VALGRIND_MAKE_MEM_NOACCESS(_qzz_addr,_qzz_len)
3 VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr,_qzz_len)
4 VALGRIND_MAKE_MEM_DEFINED(_qzz_addr,_qzz_len)
5 VALGRIND_CREATE_BLOCK(_qzz_addr,_qzz_len, _qzz_desc)
6 VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr,_qzz_len)
7 VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr,_qzz_len)
8 VALGRIND_CHECK_VALUE_IS_DEFINED(__lvalue)
9 VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed)
10 /* valgrind/valgrind.h */
11 RUNNING_ON_VALGRIND
12 VALGRIND_DISCARD_TRANSLATIONS(_qzz_addr,_qzz_len)
13 VALGRIND_NON_SIMD_CALL0(_qyy_fn)
14 VALGRIND_NON_SIMD_CALL1(_qyy_fn, _qyy_arg1)
15 ...
16 VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed)
17 VALGRIND_FREELIKE_BLOCK(addr, rzB)
18 VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed)
19 VALGRIND_DESTROY_MEMPOOL(pool)
20 VALGRIND_MEMPOOL_ALLOC(pool, addr, size)
21 VALGRIND_MEMPOOL_FREE(pool, addr)
22 ...
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
33. Bugs in the wild
Recently found bugs:
cvsps: invalid handling of external modules
btrfs-progs: invalid checksums for built data
cvs: massive memory leak on long sessions
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
34. Magic!
What a great tool!
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
35. Or not?
Well... there is something I
have hidden from you.
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
36. Generic instrumentation framework
How does valgrind work internally?
userspace JIT compiler with full CPU emulation (just like
qemu in binary translation mode)
uses VEX library to decoding guest code CPU instructions and
assembling host code
uses coregrind library to emulate operating system syscalls
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
37. Portability
As valgrind goes down to syscall instructions it needs to know the
syscall ABI, signal ABI, etc. of host and guest (emulated) OSes.
Thus valgrind:
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
38. Portability
As valgrind goes down to syscall instructions it needs to know the
syscall ABI, signal ABI, etc. of host and guest (emulated) OSes.
Thus valgrind:
won’t work on windows in it’s current form as there is no
documented syscall ABI.
But!
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
39. Portability
As valgrind goes down to syscall instructions it needs to know the
syscall ABI, signal ABI, etc. of host and guest (emulated) OSes.
Thus valgrind:
won’t work on windows in it’s current form as there is no
documented syscall ABI.
But! There is some gross hacks to run wine under valgrind to
unstrument PE files. Scary :]
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
40. Portability
As valgrind goes down to syscall instructions it needs to know the
syscall ABI, signal ABI, etc. of host and guest (emulated) OSes.
Thus valgrind:
won’t work on windows in it’s current form as there is no
documented syscall ABI.
But! There is some gross hacks to run wine under valgrind to
unstrument PE files. Scary :]
works poorly on rare OSen (like various BSDs), but it’s a
matter of adding some syscall effect definition (some lines of
code to valgrind/coregrind/m syswrap/*). Worth looking at
valgrind-freebsd.
ported to relatively popular CPU architectures:
IA-32 (i386)
AMD64
ARM
PPC (PPC64)
S390X
MIPS
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
41. Other tools
By default valgrind runs the memcheck tool (valgrind
–tool=memcheck).
VEX + coregrind is quite generic framework for runtimes
exploration. Other tools shipped with valgrind are:
none - does nothing (useful to measure emulation overlead)
memcheck - default tool to check for common memory errors
helgrind - data race detection tool for multithreaded apps
using POSIX threads for synchronization
drd - another data race detector
cachegrind - l2 cache hit/miss profiler
callgrind - function call and instruction cost profiler
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
42. Other tools: callgrind
An example callgraph of
valgrind —-tool=callgrind ls
is...
Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more
43. Sergei Trofimovich – slyfox@gentoo.org valgrind overview: runtime memory checker and a bit more