-
Notifications
You must be signed in to change notification settings - Fork 333
update code #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cuijia
wants to merge
4,412
commits into
niftich:master
Choose a base branch
from
cuijia:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
update code #1
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.