Skip to content

Conversation

@cuijia
Copy link

@cuijia cuijia commented Jul 25, 2019

No description provided.

abdulla and others added 30 commits May 16, 2017 00:00
If there is an EPT violation that is not associated with the IO APIC
page, then inject a hardware exception. This allows user space to
generate a crash log we can use to debug the issue.

Change-Id: I63ecbbb5b542d3603f133f56bb8db8bddee117fd
With the new MX_SIGNAL_LAST_HANDLE, we need to ensure we explicitly
check for MX_FIFO_READABLE.

Change-Id: I5dd1bb0445bb90e4a7f7b700392c911d21e89e72
VMOs don't assert any signals on their state tracker (state_tracker_
is unused, outside the constructor, in vm_object_dispatcher.cpp). But
the same lock is used by the CookieJar, which _is_ used.

Change-Id: I7271877affd57731bf3d383f3239d20b6af4b5bf
- Clang compiler requires "-include <file>" flag for including header
files.
- Magenta makefile uses "--include <file>" flag. Though it works but it
is not complied with standard.
- Current makefile breaks the compatibility with clang's scan-build
script.

Change-Id: I11827054abc5e2da5d0e6935b0f13fc77a4e7e14
This makes the tests (which mkfs quite a lot) much
quieter.

This information can still be displayed with a "-v" flag to MinFS.

Change-Id: I6238ce60ad74babe9a76cdaa11ccce8707f494a6
Change-Id: I095ccd024ff1d97ea5a65b3bdaee456e1026619f
Additionally, improve truncation tests to prevent
these bugs from occurring again in the future.

Change-Id: I16e52780d068ceb37e806218741a9d672efe8923
Although these tests are reasonably fast on real
hardware, they are too slow when emulated through QEMU,
and have been causing problems for our bots.

Change-Id: I6d99f24d36290968df2dbcf1fed1ed9f728cf891
Change-Id: I6a94bf76e4ac68670784f22ccdba578faa7940ce
Change-Id: I92d0ce7bfb45893da5aa45149761fc4aaec7a5ab
* Add a callback for the graphics driver to notify gfx console
  when the ownership of the display changes.
* Use the current state of display ownership to decide whether
  to process key events.
* Expose a new ioctl to provide an event that clients of
  gfxconsole can use to be notified of ownership changes.

Change-Id: I7ba231bfc1a49bbbdc084243761c40ae81feb523
Change-Id: Ibb190dbaeac59cb379fb4289a364071d99369bf8
This allows tighter coupling with the underlying device_t tree
and lifecycle, and will allow further reduction in duplicate fields
between devnode_t's and device_t's in later changes.

memfs will no longer need to support the quirks of devfs.  The only
remaining API is devfs_mount(mx_handle_t) which installs the remote
handle in /dev during startup.

Change-Id: I4cd9ba5b5e2a9dd3d9967fa1bc99ad21f813e658
- Enable kernel.memory-limit-mb for all ARM64 platforms
- Remove a header that slipped into memory_limit.cpp
- Fix a typo in memory_limit tests pertaining to rpi3 memory

Change-Id: Ia3596a53c920b7c171f7230ff9f7d9dd512f1acc
Change-Id: Idd0b4bdffdc8de2e81e2c667330d2782612a7c3b
- Use a memory limit if one is detected
- Now that PmmArena objects copy the arena internally in the
  constructor we no longer need to maintain a global structure
  to hold them. This moves arena calculations to temporary
  locals.

Change-Id: Ia428e2ad856352301e82fa28c001c7fe6024ea70
This vnode handles the case where we can't enumerate all the services available
in a given directory. It will be useful during the transition to namespaces.

Change-Id: I2bce83a97b014d128c04c2c17233642617d067df
This breaks /dev/socket, sadly, so roll it back for the moment.

This reverts commit ddca75b.

Change-Id: I7c81a481794899b9d07fd28778e7418c01f1c2bf
Change-Id: Ia40e7f54c922eb9496fc6a180078b57f963bfc24
… stuck

If a writer signalled the event too quickly in sequence, and it was at
the same time racing with a few waiters, there is a chance that an edge
would be lost and a waiter would get stuck.

Switch the event over to a non autounsignal and have it track the state
of whether or not there are any messages queued. Not as efficient, since
it'll cause waiters to wake up and stampede if more than one is
queued, but ports v2 is about to replace this anyway.

Change-Id: I3a236df342f135a81d2a8f835a7179455a4e716d
This makes it work on machines without SSE4.1.

Change-Id: Iee3f1970c238d00043fbfc0f3a104e01c5630a15
Will be used for diagnostics.

Change-Id: Iba9a5b94dfe30013a6a76e032c61f188e5fca22b
MG-771 #done
Change-Id: I7870921170cfd7b79bedf498d62bee183d850439
Note that this only dumps VMOs that the process has handles to;
its aspace could map additional VMOs.

For MG-721: "Add a way to track non-mapped VMO memory usage"

Change-Id: Iea93cbac392f4dfb88ec990fd03a76405a4383c4
Uses an extended topology CPUID leaf present in modern AMD cpus.

Change-Id: I26bf5cf5a6b666302b556c6c51e21cd2a84b083b
A recent change (133065b) changed
vc_do_root_open() to take a vc_device_t* rather than a mx_device_t*.
That was not correct: the value passed is an mx_device_t* but not a
vc_device_t*.

Fortunately, this argument was effectively just used as a boolean
(null vs. non-null).  Change the code to reflect that.

Change-Id: I9cd5bffc62f4c8bcee47ffd202758e47946d257c
Move the code from the "if (create_mx_device)" block to the caller
function that passes create_mx_device=true.

Rename the function to vc_device_create() and remove the unused
"flags" argument.

Change-Id: Ic651fc57a293907f837d4d285ea4b1bf5f0c95e5
The sizeof() a ktrace_probe_info struct wasn't necessarily matching
exactly how the linker was choosing to pack the structures in the
section, which was causing the probe code get really upset.

Change-Id: Iee909941d4afa993dbdcc5fe92484f24b4d43ccb
…UILD_LISTFILES

Change-Id: Ib624959c1f3d847c29915e18b9f0a4d92bb99330
... if read_and_verify_exception fails.

Change-Id: I4ee5c8f507cfbc25e8062cfda101b45e1d773b66
swetland and others added 30 commits May 26, 2017 01:26
Later we will scope these further so drivers, services, debug
consoles, etc, get different slices of the service namespace.

Change-Id: Id415b98daf256e9795ee31c76f180b8b02deab24
It's been asking for it for a little while...

Moves RustBindingGenerator's tiny header into generator.h too,
since it seems a little out of place in its own luxurious file.

Change-Id: Ic8a1ea34641b74f7d50ed8e351d58cad9d0eac6d
In particular now that we can access the vdso
we implement a simple protocol so it can do
more complicated things like waiting on channels
and signaling events.

Thusly we introduce a simple set of commands
that are going to be very useful to test
job policy.

Change-Id: Ic36d9d3a981b75cd729ea77834a44eaea62b518c
…ored

shouldn't affect timestamping much and speeds up cases where it's masked
out.

Change-Id: I81845f1207825800e143b037868674d4dde0539f
This switches the kernel data structure used to store pending
reads and writes for sockets from a single large VMO to a
chain of small buffers, allocated as needed.

The inspiration for this is the traditional mbuf linked-list seen
in other kernel socket implementations.

As this mbuf is not used by an in-kernel network stack, it
comes out a lot smaller than other kernel mbufs. It is a
singly-linked list instead of doubly-linked, and it has no
notion of chains. It will probably acquire a tiny header
space for UDP datagram support later, along with a datagram
size field.

Change-Id: Iaedce8f970b7e72eb22ad408761d9e5cbe79ab71
Change-Id: I21cfb98fc5ef2d72a10abe36fc999d5f6fa544d6
Currently when we cancel port waits we consider the
handle and the key. Now we consider the handle, key and port
which allows multiple ports in the same process to wait on the
same thing which is something carlos did not consider
but kids tell him is a thing.

Change-Id: Ide7df4c315d1588fa31130794d91d9906d29ce6e
Change-Id: I985632ed0082566c0627c3925f3be73eae41e9b1
Change-Id: Ieab401d5e53156c4fa37f247c62ba287ae7c4cd5
This, in turn, ensures that the underlying block device's
blockserver (servicing FIFO requests) has been closed before
the unmount requests completes.

Previously, the bcache destructor simply wasn't called, aside
from error cases during initialization; "IOCTL_VFS_UNMOUNT_FS"
would call "exit(0)" in ulib/fs before it had a chance
to execute.

Furthermore, fsck, which used the "MinFS" object, never
actually destroyed the "Bcache" object, causing the fifo
shutdown to be racy in tests which rapidly mount / fsck.
Ensure that the "Bcache" object is destroyed in this case.

Lastly, simplify the blockserver itself, by detaching
worker threads eagerly, rather than trying to join them.

MG-796 #done

Change-Id: I5841c2e0613352d0312fda358155f4398978009e
And unify suspended vs exception access to general regs.

Change-Id: Ic0a38ef7f303e671ab1338b61797d7ec3f9a0f00
Change-Id: I76be5152694da0b2484061bcb3b95eff608b0a35
Change-Id: I287201903733cb30c3004716d95c537af4597f7f
Change-Id: Idddbc8b73a92d012504c466dc03ebb6547a6a8a9
Use the correct constant when checking if AcpiGbl_DsdtIndex is valid.

Change-Id: I0b204af06befc506990a33e7bee97f10181ce310
Returns the number of unique VmAspaces that the VmObject is mapped into.
Will be useful for shared-memory accounting.

Also add a TODO that points out that COW changed the semantics of
VmObjectPaged::AllocatedPagesInRange().

Change-Id: I0a00fabdf82c8a2c6036c845cf6ed72d2db21a1f
Remove vm_usage_t::committed_pages, which is equal to private + shared.

Change-Id: Ib9cefff4a8935b51c3035719c8a0add1e836c1cb
MG-803 #comment In Progress

Change-Id: Iea37b0bb9eefaff0169cc61187f8fe7cad89532a
Change-Id: Ia1f6698e91d20c5489530a162491f55e53fb4bd5
Change-Id: I50f71b302c749b90dd812e5aa5d86a125fb211eb
-Move the heap wrapper code to cpp
-Roll the heap page allocator into heap_wrapper.cpp
-Remove the compile time heap selection logic
-Remove miniheap

Change-Id: Id6d85b68ae02d410e91e95431ecb7b56d16a6f0d
Change-Id: I8d9708a4c753eea6f258764192faa107be8b8dde
Handy to determine the clock rate of a pile of asymmetric cpus.

Change-Id: I3b041afc692492335058e6ec6e7382d96bb93222
Intentionally not documenting order of "count" writes,
since that is undefined at the moment.

Change-Id: I47bbf5c4792ab8ac700deb79871da4aac807c606
Change-Id: I57f5337e8dc64132d456d4ad4cb1937db18fea7e
This provides machinery to implement multiple variants of the vDSO.
Each variant can blacklist some of the functions so their symbols
are not visible to dynamic linking and their code gets blacked out
so there's no secret jump targets to use.

Because all the variants are just subsets of the full-featured vDSO,
all the code addresses still match across all variants and the
syscall entry enforcement machinery doesn't need to care which
variant is being used.

All the available vDSO VMOs are attached at /boot/vdso/<name>, where
<name> is "full" for the primary vDSO and other names will be used
for variants.  Currently, only some test variants are implemented.

Each variant can blacklist one or more category of syscalls.  A
category is any attribute name used in syscalls.sysgen.  A new
variant is added by adding an element to the VDso::Variant enum and
adding a case for that to VDso::CreateVariant that sets the name
and calls blacklist_<category>_syscalls for each category to be
blacklisted in that variant.

Change-Id: I32e5ee658a903365fff234e22738f7127622ed33
…etting into a function

This removes a fair amount of inlined code out of the syscall wrapper
routines.

Change-Id: I6f2d2eb6dc59d089a5435b851cdfb62c3ee6e55c
The driver init() op can now return an optional context pointer,
which is now passed to the other driver ops instead of an mx_driver_t*

mx_driver_t* is no longer needed as an argument to device_add().
device_add() now determines the newly added device's driver from its parent.

Updated load_firmware() to take an mx_device_t* instead of a mx_driver_t*

Renamed driver_unbind() to device_unbind()

Updated all magenta drivers to match new API.

Now the only remaining use of mx_driver_t is by the MAGENTA_DRIVER_BEGIN/END macros

Change-Id: I4f72c0f9d0b39cf81ead3b043216c21cccb96ab2
hci_bind was passing the wrong pointer to hci_release in its
failure path, causing the driver to crash every time hci_bind
failed. This fixes that.

Change-Id: I42df98a38c55497210636527182a1916df9b45f8
Change-Id: I6b524c7918e2a80f8c089238d8727336eda56a0f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.