Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/eigenform/perfect
/ functions
Functions
580 in github.com/eigenform/perfect
⨍
Functions
580
◇
Types & classes
167
↓ 2 callers
Function
print_env
()
perfect/src/bin/perfect-env.rs:102
↓ 2 callers
Method
random_collision
Generate a random address whose micro-tag is colliding with the micro-tag for this address.
perfect-zen3/src/bin/collide-probe.rs:118
↓ 2 callers
Method
read_vgpr
(&self, vgpr: VectorGpr)
perfect/src/harness/state.rs:70
↓ 2 callers
Method
utag_input
Return the micro-tag input bits
perfect-zen2/src/bin/dcache.rs:43
↓ 2 callers
Method
value
(&self)
perfect/src/util.rs:475
↓ 2 callers
Method
with_utag_input
(self, input: usize)
perfect-zen3/src/bin/collide-probe.rs:64
↓ 2 callers
Method
zero_strategy_fp
(mut self, x: ZeroStrategyFp)
perfect/src/harness/config.rs:224
↓ 1 callers
Function
add
(left: usize, right: usize)
perfect-tremont/src/lib.rs:1
↓ 1 callers
Method
add_list
Add each event in some slice to the set.
perfect/src/events.rs:108
↓ 1 callers
Method
add_padding_brn
(&mut self, brn_off: usize, tgt_off: usize)
perfect-zen2/src/bin/bp.rs:98
↓ 1 callers
Function
align_down
(addr: usize, bits: usize)
perfect/src/experiments/branch.rs:16
↓ 1 callers
Method
as_extern_fn
(&self)
perfect/src/asm.rs:181
↓ 1 callers
Method
brn_a
(&self)
perfect-zen2/src/bin/bp.rs:122
↓ 1 callers
Method
brn_b
(&self)
perfect-zen2/src/bin/bp.rs:126
↓ 1 callers
Method
clear
Clear all bytes in the backing allocation and reset the state of this assembler.
perfect/src/asm.rs:337
↓ 1 callers
Function
create_default_events
Create the set of default events.
perfect-zen2/src/bin/pmc.rs:332
↓ 1 callers
Function
decompose_encoding
(bytes: &[u8])
perfect-zen2/src/bin/specdec.rs:242
↓ 1 callers
Method
def_brn_a
(&mut self, brn_off: usize, tgt_off: usize)
perfect-zen2/src/bin/bp.rs:105
↓ 1 callers
Method
def_brn_b
(&mut self, brn_off: usize, tgt_off: usize)
perfect-zen2/src/bin/bp.rs:111
↓ 1 callers
Method
disas
Disassemble bytes in the backing allocation.
perfect/src/asm.rs:350
↓ 1 callers
Function
disas_chunk
(buf: &ExecutableBuffer, start_offset: AssemblyOffset, end_offset: AssemblyOffset, )
perfect/src/util.rs:359
↓ 1 callers
Function
disas_single
(buf: &ExecutableBuffer, offset: AssemblyOffset)
perfect/src/util.rs:329
↓ 1 callers
Method
dump_vgpr
(mut self, x: bool)
perfect/src/harness/config.rs:179
↓ 1 callers
Method
emit
Emit the test.
perfect-zen2/src/bin/zenbleed.rs:103
↓ 1 callers
Method
emit
( prologue: Option<fn(&mut X64Assembler)>, epilogue: Option<fn(&mut X64Assembler)>,
perfect-zen2/src/bin/pmc.rs:549
↓ 1 callers
Method
emit
(padding_brns: Option<usize>)
perfect-zen2/src/bin/bp-pattern.rs:76
↓ 1 callers
Method
emit
(case_emitter: fn(&mut X64Assembler, usize))
perfect-zen2/src/bin/dispatch.rs:243
↓ 1 callers
Method
emit
(bit: usize)
perfect-zen2/src/bin/memfile.rs:44
↓ 1 callers
Method
emit
(input: usize)
perfect-zen2/src/bin/rename.rs:20
↓ 1 callers
Method
emit
Emit the actual harness function during runtime. Binary Interface ================ On entry to the measured function: - RDI and RSI are passed thru
perfect/src/harness.rs:170
↓ 1 callers
Method
emit_fnop_sled
(&mut self, n: usize)
perfect/src/asm.rs:676
↓ 1 callers
Method
emit_jmp_byte_sled
(&mut self, n: usize)
perfect/src/asm.rs:679
↓ 1 callers
Method
emit_jmp_direct
(&self, f: &mut X64AssemblerFixed)
perfect/src/ir/branch.rs:128
↓ 1 callers
Method
emit_pop_nonvolatile_gprs
(&mut self)
perfect/src/asm.rs:884
↓ 1 callers
Method
emit_push_nonvolatile_gprs
(&mut self)
perfect/src/asm.rs:865
↓ 1 callers
Method
encode_relocs
(&mut self)
perfect/src/asm.rs:92
↓ 1 callers
Method
evaluate_program
(&mut self, prog: &PerfectProg)
perfect/src/ir.rs:362
↓ 1 callers
Method
explicit_lfence
(mut self, x: bool)
perfect/src/experiments/template.rs:120
↓ 1 callers
Method
find
Return the indexes of all occurences of a particular value in the list.
perfect/src/stats.rs:65
↓ 1 callers
Method
fs_name
(&self)
perfect/src/stats.rs:300
↓ 1 callers
Function
gen_random_addr
Generate an address where bits [45:32] are randomized
perfect-zen2/src/bin/bp-pattern.rs:43
↓ 1 callers
Method
generate_collisions
Generate the set of all 256 addresses whose micro-tags are colliding with the micro-tag for this address.
perfect/src/uarch/vaddr.rs:92
↓ 1 callers
Method
generate_collisions
Generate the set of all 256 addresses whose micro-tags are colliding with the micro-tag for this address.
perfect-zen3/src/bin/collide-probe.rs:106
↓ 1 callers
Function
generate_patterns_exhaustive
Create an exhaustive list of patterns for the given length.
perfect-zen2/src/bin/bp-pattern.rs:11
↓ 1 callers
Method
group
(&self)
perfect/src/experiments/pmcdisc/group.rs:143
↓ 1 callers
Method
invd
Ask the kernel module to invalidate the L1D cache
perfect-zen3/src/lib.rs:57
↓ 1 callers
Method
is_valid
Returns 'true' if this is a valid probe
perfect-zen2/src/bin/zenbleed.rs:503
↓ 1 callers
Method
iter_ith_results
Return an iterator over the `i`-th set of observations for each event.
perfect/src/stats.rs:320
↓ 1 callers
Method
local_max
Return a list of the maximum observed values across all results.
perfect/src/stats.rs:248
↓ 1 callers
Method
measure_and_dump
(&mut self, measured_fn: MeasuredFn, event: &EventDesc, iters: usize, input: I
perfect/src/harness.rs:624
↓ 1 callers
Method
open
Open a handle to the character device
perfect-zen3/src/lib.rs:23
↓ 1 callers
Method
pad_iter
(&self)
perfect-zen2/src/bin/bp.rs:118
↓ 1 callers
Method
ping
Ask the kernel module to read a secret value
perfect-zen3/src/lib.rs:52
↓ 1 callers
Method
present
(&self)
perfect/src/util/pagemap.rs:8
↓ 1 callers
Method
push
(&mut self, byte: u8)
perfect/src/asm.rs:428
↓ 1 callers
Method
read
Ask the kernel module to read from an arbitrary virtual address
perfect-zen3/src/lib.rs:62
↓ 1 callers
Method
record_for_event
(&mut self, event: Zen2Event, res: EventResults)
perfect-zen2/src/bin/pmc.rs:356
↓ 1 callers
Function
register_sigsegv_handler
Register the SIGSEGV handler. After calling, subsequent segfaults are handled with [`sigsegv_handler`].
perfect/src/harness/signal.rs:101
↓ 1 callers
Method
scratch_page
Read the address of the scratch page allocated by the module
perfect-zen3/src/lib.rs:40
↓ 1 callers
Method
set
(&self)
perfect-zen2/src/bin/pmc.rs:63
↓ 1 callers
Method
to_pattern
(&self)
perfect/src/experiments/branch.rs:27
↓ 1 callers
Method
unmap
Unmap the backing allocation.
perfect/src/asm.rs:86
↓ 1 callers
Method
utag
(&self)
perfect-zen2/src/bin/dcache.rs:47
↓ 1 callers
Method
utag
Compute and return the micro-tag for this address.
perfect/src/uarch/vaddr.rs:72
↓ 1 callers
Method
utag
(&self)
perfect-zen3/src/bin/collide-probe.rs:86
↓ 1 callers
Method
variance
Return the [`f32`] variance over values in this list.
perfect/src/stats.rs:109
↓ 1 callers
Method
write_csv
Write this set of results to a CSV file. FIXME: This code is very slow and bad. Would probably be better if this structure was reorganized. FIXME: F
perfect/src/stats.rs:337
↓ 1 callers
Function
zen2_btb_collisions
Compute other addresses aliasing with this BTB index.
perfect/src/uarch/btb.rs:157
↓ 1 callers
Function
zen2_btb_valid_ops
Compute the allowed operations on the given address that do not affect the output of the gates associated with [`ZEN2_BTB_INDEX_FN`]. Each operation
perfect/src/uarch/btb.rs:58
Method
add_case
(&mut self, desc: EmitterDesc<I>)
perfect/src/experiments.rs:65
Method
add_unknown_all
Add *all possible combinations* of unit mask bits to the set.
perfect/src/events.rs:128
Function
align
()
perfect/src/util.rs:623
Method
align
(&mut self, alignment: usize, with: u8)
perfect/src/asm.rs:435
Method
align
(&self)
perfect/src/ir/branch.rs:68
Function
align_down
(addr: usize, bits: usize)
perfect/src/util.rs:527
Method
append_from_slice
(&mut self, slice: &[T])
perfect/src/experiments/branch.rs:90
Method
apply_to_vm
(&self, vm: &mut PerfectVm)
perfect/src/ir.rs:388
Method
as_desc
(&self)
perfect/src/events/tremont.rs:70
Method
as_i64
Return the [i64] representation of this probe.
perfect-zen2/src/bin/zenbleed.rs:522
Method
as_slice
Return the backing allocation as a slice of bytes.
perfect/src/asm.rs:194
Method
as_usize
(&self)
perfect/src/asm.rs:971
Method
auto_rdpmc
(mut self, x: Option<usize>)
perfect/src/harness/config.rs:184
Method
backward_relocation
(&mut self, name: &'static str, target_offset: isize, field_offset: u8, ref_offset: u8, kind
perfect/src/asm.rs:512
Method
bare_relocation
(&mut self, target: usize, field_offset: u8, ref_offset: u8, kind: Self::Relocation)
perfect/src/asm.rs:533
Function
branchset_offset
()
perfect/src/ir/branch.rs:176
Function
branchset_uniform
()
perfect/src/ir/branch.rs:165
Function
build_pmc_counter
NOTE: Quick hack for building this outside of [PerfectHarness]
perfect/src/util.rs:580
Function
bvfmt
Convert a bitslice to a flat string of 1's and 0's. NOTE: This only exists because, when using .chunks(), the binary formatter in `bitvec` seems to i
perfect-zen2/src/bin/bp-pattern.rs:38
Method
check
(&self, value: usize)
perfect/src/util.rs:476
Method
clear
Clear this set.
perfect/src/events.rs:136
Method
clear
(&mut self)
perfect/src/harness/state.rs:21
Function
clear_ghist_dir
()
perfect/src/util.rs:565
Function
clear_ghist_indir
()
perfect/src/util.rs:548
Method
close
(fd: BorrowedFd<'a>)
perfect/src/util/msr.rs:19
Method
compute_utag_map
Build a map of all possible micro-tags and their associated input bits.
perfect/src/uarch/vaddr.rs:113
Method
compute_utag_map
Build a map of all possible micro-tags and their associated input bits.
perfect-zen3/src/bin/collide-probe.rs:126
Method
cr2
(&self)
perfect/src/harness/signal.rs:57
Method
csgsfs
(&self)
perfect/src/harness/signal.rs:53
Method
ctr_idx
(mut self, x: i32)
perfect/src/experiments/template.rs:100
Method
default_tremont
()
perfect/src/harness/config.rs:139
← previous
next →
101–200 of 580, ranked by callers