Skip to content

Commit 9ea5974

Browse files
committed
Modify according to review comments
1 parent b23f653 commit 9ea5974

File tree

6 files changed

+53
-48
lines changed

6 files changed

+53
-48
lines changed

benches/vm_benchmark.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ fn asm_benchmark(c: &mut Criterion) {
3737
c.bench_function("interpret secp256k1_bench via assembly", |b| {
3838
let buffer = fs::read("benches/data/secp256k1_bench").unwrap().into();
3939
let args = [
40-
Ok("secp256k1_bench".into()),
41-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
42-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
43-
Ok("foo".into()),
44-
Ok("bar".into()),
45-
].into_iter();
40+
"secp256k1_bench",
41+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
42+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
43+
"foo",
44+
"bar",
45+
].into_iter().map(|a| Ok(a.into()));
4646
b.iter(|| {
4747
let asm_core = AsmCoreMachine::new(ISA_IMC, VERSION0, u64::MAX);
4848
let core = DefaultMachineBuilder::new(asm_core).build();
@@ -58,12 +58,12 @@ fn mop_benchmark(c: &mut Criterion) {
5858
c.bench_function("interpret secp256k1_bench via assembly mop", |b| {
5959
let buffer = fs::read("benches/data/secp256k1_bench").unwrap().into();
6060
let args = [
61-
Ok("secp256k1_bench".into()),
62-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
63-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
64-
Ok("foo".into()),
65-
Ok("bar".into()),
66-
].into_iter();
61+
"secp256k1_bench",
62+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
63+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
64+
"foo",
65+
"bar",
66+
].into_iter().map(|a| Ok(a.into()));
6767
b.iter(|| {
6868
let asm_core = AsmCoreMachine::new(ISA_IMC | ISA_B | ISA_MOP, VERSION2, u64::MAX);
6969
let core = DefaultMachineBuilder::<Box<AsmCoreMachine>>::new(asm_core)
@@ -82,12 +82,12 @@ fn mop_memoized_benchmark(c: &mut Criterion) {
8282
let version = VERSION2;
8383
let buffer = fs::read("benches/data/secp256k1_bench").unwrap().into();
8484
let args = [
85-
Ok("secp256k1_bench".into()),
86-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
87-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
88-
Ok("foo".into()),
89-
Ok("bar".into()),
90-
].into_iter();
85+
"secp256k1_bench",
86+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
87+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
88+
"foo",
89+
"bar",
90+
].into_iter().map(|a| Ok(a.into()));
9191
let mut decoder = MemoizedFixedTraceDecoder::new(build_decoder::<u64>(isa, version));
9292
let asm_core = AsmCoreMachine::new(isa, version, u64::MAX);
9393
let core = DefaultMachineBuilder::<Box<AsmCoreMachine>>::new(asm_core)
@@ -115,12 +115,12 @@ fn mop_memoized_dynamic_benchmark(c: &mut Criterion) {
115115
let version = VERSION2;
116116
let buffer = fs::read("benches/data/secp256k1_bench").unwrap().into();
117117
let args = [
118-
Ok("secp256k1_bench".into()),
119-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
120-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
121-
Ok("foo".into()),
122-
Ok("bar".into()),
123-
].into_iter();
118+
"secp256k1_bench",
119+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
120+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
121+
"foo",
122+
"bar",
123+
].into_iter().map(|a| Ok(a.into()));
124124
let mut decoder = MemoizedDynamicTraceDecoder::new(build_decoder::<u64>(isa, version));
125125
let asm_core = AsmCoreMachine::new(isa, version, u64::MAX);
126126
let core = DefaultMachineBuilder::<Box<AsmCoreMachine>>::new(asm_core)

src/machine/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use super::debugger::Debugger;
1212
use super::decoder::{build_decoder, InstDecoder};
1313
use super::elf::{parse_elf, LoadingAction, ProgramMetadata};
1414
use super::instructions::{execute, Instruction, Register};
15-
use super::memory::{load_c_string, Memory};
15+
use super::memory::{load_c_string_byte_by_byte, Memory};
1616
use super::syscalls::Syscalls;
1717
use super::{
1818
registers::{A0, A7, REGISTER_ABI_NAMES, SP},
@@ -813,7 +813,7 @@ impl<'a, M: Memory> Iterator for FlattenedArgsReader<'a, M> {
813813
return Some(Err(err));
814814
};
815815
let addr = addr.unwrap();
816-
let cstr = load_c_string(self.memory, &addr);
816+
let cstr = load_c_string_byte_by_byte(self.memory, &addr);
817817
if let Err(err) = cstr {
818818
return Some(Err(err));
819819
};

src/memory/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,10 @@ pub(crate) fn memset(slice: &mut [u8], value: u8) {
152152
}
153153
}
154154

155-
pub fn load_c_string<M: Memory>(memory: &mut M, addr: &M::REG) -> Result<Bytes, Error> {
155+
pub fn load_c_string_byte_by_byte<M: Memory>(
156+
memory: &mut M,
157+
addr: &M::REG,
158+
) -> Result<Bytes, Error> {
156159
let mut buffer = Vec::new();
157160
let mut addr = addr.clone();
158161
loop {

tests/test_asm.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -467,12 +467,13 @@ fn test_memoized_secp256k1() {
467467
let asm_core = AsmCoreMachine::new(isa, version, u64::MAX);
468468
let core = DefaultMachineBuilder::new(asm_core).build();
469469
let mut machine = AsmMachine::new(core);
470-
let args = [Ok("secp256k1_bench".into()),
471-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
472-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
473-
Ok("foo".into()),
474-
Ok("bar".into()),
475-
].into_iter();
470+
let args = [
471+
"secp256k1_bench",
472+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
473+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
474+
"foo",
475+
"bar",
476+
].into_iter().map(|a| Ok(a.into()));
476477
machine.load_program(&buffer, args).unwrap();
477478
let mut decoder = MemoizedFixedTraceDecoder::new(build_decoder::<u64>(isa, version));
478479
let result = machine.run_with_decoder(&mut decoder);
@@ -487,12 +488,13 @@ fn test_memoized_dynamic_secp256k1() {
487488
let asm_core = AsmCoreMachine::new(isa, version, u64::MAX);
488489
let core = DefaultMachineBuilder::new(asm_core).build();
489490
let mut machine = AsmMachine::new(core);
490-
let args = [Ok("secp256k1_bench".into()),
491-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
492-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
493-
Ok("foo".into()),
494-
Ok("bar".into()),
495-
].into_iter();
491+
let args = [
492+
"secp256k1_bench",
493+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
494+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
495+
"foo",
496+
"bar",
497+
].into_iter().map(|a| Ok(a.into()));
496498
machine.load_program(&buffer, args).unwrap();
497499
let mut decoder = MemoizedDynamicTraceDecoder::new(build_decoder::<u64>(isa, version));
498500
let result = machine.run_with_decoder(&mut decoder);

tests/test_resume2.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ fn test_resume2_secp256k1_asm_2_interpreter_2_asm() {
6565
let mut machine1 = MachineTy::Asm.build(data_source.clone(), version);
6666
machine1.set_max_cycles(100000);
6767
machine1.load_program([
68-
Ok("secp256k1_bench".into()),
69-
Ok("033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f".into()),
70-
Ok("304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3".into()),
71-
Ok("foo".into()),
72-
Ok("bar".into()),
73-
].into_iter()).unwrap();
68+
"secp256k1_bench",
69+
"033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f",
70+
"304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3",
71+
"foo",
72+
"bar",
73+
].into_iter().map(|e| Ok(e.into()))).unwrap();
7474
let result1 = machine1.run();
7575
assert_eq!(result1.unwrap_err(), Error::CyclesExceeded);
7676
let snapshot1 = machine1.snapshot().unwrap();

tests/test_spawn.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use ckb_vm::cost_model::constant_cycles;
33
#[cfg(has_asm)]
44
use ckb_vm::machine::asm::{AsmCoreMachine, AsmMachine};
55
use ckb_vm::machine::{trace::TraceMachine, DefaultCoreMachine, VERSION2};
6-
use ckb_vm::memory::load_c_string;
6+
use ckb_vm::memory::load_c_string_byte_by_byte;
77
use ckb_vm::registers::{A0, A1, A2, A7};
88
use ckb_vm::{
99
DefaultMachineBuilder, Error, FlattenedArgsReader, Register, SparseMemory, SupportMachine,
@@ -45,7 +45,7 @@ impl<Mac: SupportMachine> Syscalls<Mac> for IntSpawnSyscall {
4545
}
4646

4747
let addr = machine.registers()[A0].clone();
48-
let path_byte = load_c_string(machine.memory_mut(), &addr).unwrap();
48+
let path_byte = load_c_string_byte_by_byte(machine.memory_mut(), &addr).unwrap();
4949
let path = std::str::from_utf8(&path_byte).unwrap();
5050
let argc = machine.registers()[A1].clone();
5151
let argv = machine.registers()[A2].clone();
@@ -97,7 +97,7 @@ impl<Mac: SupportMachine> Syscalls<Mac> for AsmSpawnSyscall {
9797
}
9898

9999
let addr = machine.registers()[A0].clone();
100-
let path_byte = load_c_string(machine.memory_mut(), &addr).unwrap();
100+
let path_byte = load_c_string_byte_by_byte(machine.memory_mut(), &addr).unwrap();
101101
let path = std::str::from_utf8(&path_byte).unwrap();
102102
let argc = machine.registers()[A1].clone();
103103
let argv = machine.registers()[A2].clone();

0 commit comments

Comments
 (0)