Comments (8)
I think I may figure out the issue:)
The asm pause
instruction used in enclave.cc
is an X86 instruction that is not supported by aarch64.
I changed it to the yield
instruction that made it passed the compile.
I'm wondering is there anyway to verify the correctness?
Bests,
John
from ghost-userspace.
Yes, that's the correct way to fix this issue. You can call a function like the following in place of asm volatile("pause");
so that the same code works for multiple architectures:
inline void Pause() {
#ifndef __GNUC__
#error "GCC is needed for the macros in the `Pause()` function."
#endif
#if defined(__x86_64__)
asm volatile("pause");
#elif defined(__aarch64__)
asm volatile("yield");
#elif defined(__powerpc64__)
asm volatile("or 27,27,27");
#else
// Do nothing.
#endif
}
Could you please clarify what you mean about verifying correctness? If you replace the pause
instruction with yield
for code compiled to aarch64
, then you should be good.
from ghost-userspace.
Feel free to reopen if you have any additional questions.
from ghost-userspace.
Hi, Jack, @jackhumphries
Thanks for the reply, and sorry for the late reply:) Finally got time to move on to this new project. Not sure whether I should keep all my problems to one issue or not.
I'm trying to run: bazel run fifo_agent
.
I have a new question about the L3 cache check in lib/Topology.c(line 311) that RPI-4B does not have an L3 cache. But the comments on this function is for the NUMA CPU. Could that be some wrong configuration on my side? If not, would you mind providing any ideas about modifying the function?
I really appreciate that!
Bests,
JOhn
from ghost-userspace.
Hi John,
No worries and feel free to open a new issue each time. That way it is easier for other people who are having the same issue to find our discussion.
The Topology class will currently fail to construct if there is no L3 cache on your machine, though I actually updated the Topology class in our internal codebase recently so that it will construct without an L3 (this should fix your issue). Let me see if we are able to prioritize getting that pushed into the open source repo. If we can't prioritize it, I'll post the patch here for you.
Jack
from ghost-userspace.
Thanks so much for helping me out!!
I will open an issue next time. Looking forward to the new patch:) Let me know if there is anything I can help.
Meanwhile, I can work on odroid n2 which is a real heterogeneous platform.
Thanks again:)
from ghost-userspace.
Hi John,
We just pushed this in commit 1c09b74. This commit includes changes to the Topology class and some tests in topology_test
to test the new changes. Please let me know if this works for you.
Jack
from ghost-userspace.
Thanks, Jack!
Just test it with FIFO scheduler and hello world binary. The new patch works on the RPI4 and odroid n2:)
Bests,
John
from ghost-userspace.
Related Issues (20)
- I am getting this error when I run bazel build -c opt fifo_per_cpu_agent HOT 5
- Scheduling other benchmarks like deathstarbench HOT 1
- bazel build error about platforms HOT 1
- When running 'sudo bazel-bin/pushtosched 18', I encountered an error: sched_setscheduler(1) failed: Bad file descriptor'" HOT 3
- I don't know whether it can run normally in wsl, or if anyone has had similar experience HOT 1
- BPF verifier rejects `biff.bpf.c` HOT 3
- how to run rocksdb application by two steps and test it ? HOT 1
- How to add a custom scheduler? Is it possible for me to get some help? HOT 11
- some question about switchTo and Latched HOT 2
- An error when moving thread to agent_shinjuku HOT 1
- The origin of the biff_bpf.skel.h file HOT 1
- Questions about enclave HOT 1
- Fail to run the shinjuku.py for a "IsADirectoryError" HOT 2
- questions about MSG_TASK_ON_CPU HOT 1
- Forcibly closing the agent while program running on enclave HOT 1
- How can i check the application actually run on the ghost? HOT 1
- The ghost is support docker application as well ? HOT 1
- Questions about running multiple concurrent policies on a single machine using multiple enclaves. HOT 3
- How to check the scheduling time slice of the scheduling algorithm in Ghost?
- How to upgrade scheduling policies dynamically
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 ghost-userspace.