Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| summerofcode:projecttemplate [2018/05/14 09:34] – SudhanshuSaurav | summerofcode:projecttemplate [2018/05/14 21:05] (current) – remove data that was correctly entered into SummerOfCode2018Projects/VerificationOfBhyveInstructionEmulation MarkLinimon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | * Student: | + | * Student: |
| - | * Mentor: | + | * Mentor: |
| - | ===== Project | + | ===== Project |
| + | (Two or three paragraphs about your project, the problem you are trying to solve, and any obstacles you may hit.) | ||
| - | Test harness for instruction emulation code using Intel XED(x86 encoder | + | ===== Approach to solving the problem ===== |
| - | decoder) tool. | + | |
| - | ===== Project description & Approach | + | (Details as to how you intend |
| - | Bhyve hypervisor that runs guest operating system inside a virtual machine | + | |
| - | (parameters like the number of virtual CPUs, amount of guest memory and input-output | + | |
| - | connectivity can be specified with command line parameter). It has a | + | |
| - | software emulator of a small number of instructions which needs to be tested using | + | |
| - | Intel XED tools and after decoding it needs to produce a data structure describing | + | |
| - | the opcode, operands, and flags or vice versa. The main purpose of this project is | + | |
| - | to provide a test for Bhyve instructions. The tests are a tiny guest operating system | + | |
| - | that generally executes few lines of C and assembler test code in order to obtain | + | |
| - | its PASS/FAIL result. This test harness provides %%FreeBSD%% and software | + | |
| - | emulator to check the accuracy of their instructions. It is often used for quick and | + | |
| - | dirty bug reproducer. I will try to provide simplicity to test harness so that it is | + | |
| - | easy to verify they are correct, easy to maintain and easy to use in timing | + | |
| - | measurement. | + | |
| - | Since this %%FreeBSD%% OS supports multiple architectures currently (i386, amd64, | + | |
| - | ARM, MIPS, PPC, sparc64). I am trying to provide test harness which supports all | + | |
| - | these architectures. I am creating a test harness for the instructions emulation | + | |
| - | code using the Intel XED tool which is the software library for encoding and | + | |
| - | decoding x86(IA-32 instructions set and Intel 64 instructions set) instructions. | + | |
| - | information and produces a data structure describing the opcode, operands, and | + | |
| - | flags. From these, we obtain the PASS/FAIL result of the emulation. | + | |
| ===== Deliverables ===== | ===== Deliverables ===== | ||
| - | * **Test harness** | + | (List of features you plan to implement) |
| - | * **Test library** | + | |
| - | * **Driver stubs** | + | |
| - | * **Executing test** | + | |
| - | * **Generating report** | + | |
| - | + | ||
| - | * Develops system test driver, another supporting tool that requires executing test | + | |
| - | * Develop stubs and driver | + | |
| - | * Design test script to handle different test scenarios and test data | + | |
| ===== Milestones ===== | ===== Milestones ===== | ||
| + | |||
| + | (5-10 milestones, with dates, indicating when you hope or expect to be able to complete features. This section is mandatory. Please negotiate these with your mentor to make sure you're not under- or over-estimating the amount of work to be done. Please also make sure the following four dates are included within your milestones) | ||
| * May 14th: Start of coding | * May 14th: Start of coding | ||
| - | * Test harness for small no. of Instructions | + | * You'll be doing this in the first week |
| * May 21st: Week 2 | * May 21st: Week 2 | ||
| - | * Provide simplicity | + | * You plan to do this in the second week |
| * June 11th - June 15th: Mid-term Evaluations #1 | * June 11th - June 15th: Mid-term Evaluations #1 | ||
| - | * June 12th: Continue coding | ||
| - | * Extend for large no. of Instructions | ||
| * July 9th - July 13th: Mid-term Evaluations #2 | * July 9th - July 13th: Mid-term Evaluations #2 | ||
| - | * July Modified test harness to support most of the architectures. | ||
| * August 6th: End of coding (soft) | * August 6th: End of coding (soft) | ||
| - | * Debug and finish code and complete documentation | + | * You may wish to use this time to complete documentation |
| * August 14th: End of coding (hard) | * August 14th: End of coding (hard) | ||
| ===== Test Plan ===== | ===== Test Plan ===== | ||
| - | With the help of Intel XED(x86 encoder-decoder) tool check the correctness of the Instruction | + | (List of steps you plan to use to test your work, as discussed with your mentor) |
| ===== The Code ===== | ===== The Code ===== | ||
| - | https://github.com/capreyon/Test-harness-for-bhyve-instruction | + | (Link to your code, for example |
| ===== Notes ===== | ===== Notes ===== | ||
| - | Nothing | + | (A place to make notes that will be useful to others looking |
| ===== Useful links ===== | ===== Useful links ===== | ||
| - | * https:// | + | (Links to any external resources, work, research etc which may be useful to you or to anybody wanting to understand your work) |
| - | * https:// | + | |
| - | * https:// | + | |