Comments (9)
We need an script that add some extra code between begin..end; statement.
from torokernel.
By compiling the kernel with the "-pg", each function invokes mcount(). So it is possible to count the number of time a function is executed. It may be possible to sample the registers of each core by using the qemu monitor. For example, we could do it every 100ms and then get a graph that shows where toro elapses most of the time.
from torokernel.
while true; do
s=`echo "info cpus" | netcat 127.0.0.1 55555 | gawk '{ match($0, /=([0-9,x,a-f]+)/, arr); if(arr[1] != "") print arr[1] }'`
k=`addr2line -s -f -e StaticWebServer $s`
echo $k
# sleep 0.1
done
from torokernel.
I better way is to use the QMP to get:
- $EIP register
- $EBP+8
Then you can get the current function and the parent's function.
Add this to qemu-args:
-qmp unix:./qmp-sock,server,nowait
from torokernel.
from torokernel.
./qmp --path=./qmp-sock human-monitor-command --command-line="info registers"
from torokernel.
This tool may be developed in a different repo since it is not limited to toro.
from torokernel.
The tools is developed in https://github.com/torokernel/qprofiler
from torokernel.
By adding -pg
, the compilation fails but the mcount() is added. It would be possible to compile the kernel manually linking it.
from torokernel.
Related Issues (20)
- Remove ServerSocket HOT 1
- Remove the if for the DispatcherEvent HOT 1
- Add an option to enqueue packets instead of sending one by one HOT 1
- Investigate how we can dedicate virtqueues per vcpu HOT 1
- Split thread ready queue into ready and sleept threads
- Licensing terms clarification for end user (developer) applications HOT 8
- Add support for indirect buffer descriptors
- Rewrite this script to python to handle better the parameters
- Add support for fpc 3.3.1
- Add support for latest qemu
- Add a pining option to CloudIt
- Reduce number of bytes copied HOT 1
- Correct rdtsc() with the KVM steal clock HOT 1
- Allow to use vsock as console
- Setting the state of the thread after queuing may cause a race condition
- Fix README.md to document the use of CloudIt.py
- Use %FILE% and %LINE% during BUG()
- Fix bootloader for recent NASM
- Port Toro to FPC-3.2.2
- Enable using latest QEMU HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from torokernel.