Lines Matching full:origin

95 incorrect shadow/origin values, likely leading to false positives. Functions
167 Origin tracking
170 Every four bytes of kernel memory also have a so-called origin mapped to them.
171 This origin describes the point in program execution at which the uninitialized
172 value was created. Every origin is associated with either the full allocation
176 When an uninitialized variable is allocated on stack or heap, a new origin
177 value is created, and that variable's origin is filled with that value. When a
178 value is read from memory, its origin is also read and kept together with the
179 shadow. For every instruction that takes one or more values, the origin of the
181 If a poisoned value is written into memory, its origin is written to the
190 In this case the origin of ``b`` is generated upon function entry, and is
191 stored to the origin of ``c`` right before the addition result is written into
194 Several variables may share the same origin address, if they are stored in the
196 origin for all of them. We have to sacrifice precision in this case, because
212 0xffff0000, and the origin of the result would be the origin of ``b``.
213 ``ret.s[0]`` would have the same origin, but it will never be used, because
216 If both function arguments are uninitialized, only the origin of the second
219 Origin chaining
222 To ease debugging, KMSAN creates a new origin for every store of an
223 uninitialized value to memory. The new origin references both its creation stack
224 and the previous origin the value had. This may cause increased memory
225 consumption, so we limit the length of origin chains in the runtime.
237 pair of pointers to the shadow and origin addresses of the given memory::
240 void *shadow, *origin;
250 The compiler makes sure that for every loaded value its shadow and origin
252 origin are also stored using the metadata pointers.
257 A special function is used to create a new origin value for a local variable and
258 set the origin of that variable to that value::
306 initialized or copied, making sure shadow and origin values are copied alongside
319 void __msan_warning(u32 origin)
380 origin pages::
384 struct page *shadow, *origin;
388 At boot-time, the kernel allocates shadow and origin pages for every available
393 This means that in general for two contiguous memory pages their shadow/origin
395 boundary of a memory block, accesses to shadow/origin memory may potentially
406 pages with non-contiguous metadata, it returns pointers to fake shadow/origin regions::
415 range, its shadow and origin. KMSAN reduces the vmalloc area by 3/4, making only
423 shadow and origin pages are similarly mapped into contiguous regions.