caladan: cannot find macro `llvm_asm`

Hi,

Thank you for your clear instructions in compiling Caladan! I’m trying to compile and run Caladan on the XL170 machines in CloudLab (running Ubuntu 18.04.6 LTS, kernel 4.15.0-191-generic) . All instructions worked out fine until the very last step of building the synthetic client-server application.

Specifically, cargo build --release fails to compile Shenango. Any idea on how to resolve this? Below is the output

I’d greatly appreciate your help!

Best regards, Hamed

   Compiling nom v3.2.1
   Compiling mersenne_twister v1.1.1
   Compiling cexpr v0.2.3
   Compiling env_logger v0.4.3
   Compiling shenango v0.1.0 (/users/hameds/orig/caladan/bindings/rust)
error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/asm.rs:21:14
   |
21 |     unsafe { llvm_asm!("rdtscp" : "={eax}"(a), "={edx}"(d), "={ecx}"(c) : : : "volatile") };
   |              ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/asm.rs:13:14
   |
13 |     unsafe { llvm_asm!("rdtsc" : "={eax}"(a), "={edx}"(d) : : : "volatile" ) };
   |              ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
 --> /users/hameds/orig/caladan/bindings/rust/src/asm.rs:7:14
  |
7 |     unsafe { llvm_asm!("cpuid" : : : "rax", "rbx", "rcx", "rdx": "volatile") }
  |              ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
 --> /users/hameds/orig/caladan/bindings/rust/src/asm.rs:3:14
  |
3 |     unsafe { llvm_asm!("pause" :::: "volatile") }
  |              ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/lib.rs:55:9
   |
55 |         llvm_asm!("" ::: "memory" : "volatile");
   |         ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/lib.rs:54:9
   |
54 |         llvm_asm!("addl $$1, %fs:preempt_cnt@tpoff" : : : "memory", "cc" : "volatile");
   |         ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/lib.rs:44:9
   |
44 |         llvm_asm!("subl $$1, %fs:preempt_cnt@tpoff" : : : "memory", "cc" : "volatile");
   |         ^^^^^^^^

error: cannot find macro `llvm_asm` in this scope
  --> /users/hameds/orig/caladan/bindings/rust/src/lib.rs:43:9
   |
43 |         llvm_asm!("" ::: "memory" : "volatile");
   |         ^^^^^^^^

error[E0635]: unknown feature `llvm_asm`
 --> /users/hameds/orig/caladan/bindings/rust/src/lib.rs:4:12
  |
4 | #![feature(llvm_asm)]
  |            ^^^^^^^^

For more information about this error, try `rustc --explain E0635`.
error: could not compile `shenango` due to 9 previous errors

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 48 (23 by maintainers)

Most upvoted comments

You’ll need to switch to a newer version of rust, try running rustup default nightly

OK. Sounds like c-states are still not enabled on your machine (the output should be something like intel_idle, not none). If the cloudlab admins pushed a change to the BIOS config, you may need to reboot for it to take effect. Otherwise you should check back in with them about what is going on.

What is the output of ‘cat /sys/devices/system/cpu/cpuidle/current_driver’? If it is “none” then you will need to request that the Cloudlab admins enable c-states in BIOS for your machine. You’ll see other similar requests in the cloudlab-users forum.