URGENT RESPONSE NEEDED
Hello my dear. Did you receive my email message to you? Please, get back to me ASAP as the matter is becoming late. Expecting your urgent response. Sean.
Urgent Reply 7/9/2018 6:29:15 a.m.
Greetings , Good day to you? I am Happy to connect with you. I am Dr. Meier Heidi, Chief Executive Officer of the Board, Banco Santander SA, I have an important business I want to discuss with you because we are both going to benefit from it . Kindly reply me back for more information Am waiting to hear from you as soon as possible, My regards to you and your family. Dr. Meier Heidi. Chief Executive Officer, Banco Santander SA. 35787 7/9/2018 6:29:15 a.m.
,Your urgent confirmation
Attn: Beneficiary, We have contacted the Federal Ministry of Finance on your Behalf and they have brought a solution to your problem by coordinating your payment in total (10,000,000.00) Ten Million Dollars in an atm card which you can use to withdraw money from any ATM MACHINE CENTER anywhere in the world with a maximum of 1 Dollars daily. You now have the lawful right to claim your fund in an atm card. Since the Federal Bureau of Investigation is involved in this transaction, you have to be rest assured for this is 100% risk free it is our duty to protect the American Citizens, European Citizens, Asian Citizen. All I want you to do is to contact the atm card CENTER Via email or call the office telephone number one of the Consultant will assist you for their requirements to proceed and procure your Approval Slip on your behalf. CONTACT INFORMATION NAME: James Williams EMAIL: paymasterofficed...@gmail.com Do contact us with your details: Full name// Address// Age// Telephone Numbers// Occupation// Your Country// Bank Details// So your files would be updated after which the Delivery of your atm card will be affected to your designated home Address without any further delay and the bank will transfer your funds in total (10,000,000.00) Ten Million Dollars to your Bank account. We will reply you with the secret code (1600 atm card). We advice you get back to the payment office after you have contacted the ATM SWIFT CARD CENTER and we do await your response so we can move on with our Investigation and make sure your ATM SWIFT CARD gets to you. Best Regards James Williams Paymaster General Federal Republic Of Nigeri
Urgent Reply Needed
-- Hi, compliments of the best of moment! There is a viable business opportunity in our company to supply the raw materials we use in our production which I've been buying from your region in my former capacity as purchase officer of our company. I require partnership of a reliable and trustworthy individuals in your region, the raw materials is hugely available in your region. The opportunity will not interfere with your present job as it doesn't matter your area of specialization. Should you desire to know more about the opportunity, kindly write me back to enable me avail you the full details of the offer. Thanks and Regards Mr.Hedemann Harald
URGENT REPLY FOR MORE DETAILS.
Compliment of the day, I am Mr.Kere Casmire I Have a Business Proposal of $5.3 million For You. I am aware of the unsafe nature of the internet, and was compelled to use this medium due to the nature of this project. I have access to very vital information that can be used to transfer this huge amount of money. which may culminate into the investment of the said funds into your company or any lucrative venture in your country. If you will like to assist me as a partner then indicate your interest, after which we shall both discuss the modalities and the sharing percentage. Upon receipt of your reply on your expression of Interest I will give you full details, on how the business will be executed I am open for negotiation. Thanks for your anticipated cooperation. Note you might receive this message in your inbox or spam or junk folder, depends on your web host or server network. Regards, Mr.Kere Casmire
Attention To me and get back to me urgent
Attention:Beneficiary I am Meliana Trump, and I am writing to inform you about your Bank Check Draft brought back 16/07/2017 by the United Embassy Mr John Moore from the government of Benin Republic in the white house Washington DC been mandated to be deliver to your home address once you reconfirm it with the one we have here with us to avoid wrong delivery of your check draft Eighteen million united states dollars $18,000,000,00usd that was assigned to be delivered to your humble home address by Honorable president Donald Trump the president of this great country this week by a delivery agent Mr John Moore Also reconfirm your details for the check delivery by filling the form below and send it immediately to our mrs.melianatr...@yahoo.com in for verification and for prompt collection of your fund. Fill The Form Below: 1. Residential Address : 2. Next of Kin : 3. Mobile Number: 4. Fax Number : 5. Occupation : 6. Sex : 7. Age : 8. Nationality : 9. Country : 10. Marital Status : Accept my hearty congratulation again! Yours Sincerely, MRS MELIANA TRUMP FIRST_LADY 1600 Pennsylvania Ave NW, Washington, DC 20500, United States
Re: Reply Urgent
Hello, How are you doing? I have been sent to inform you that, We have an inheritance of a deceased client with your surname. Contact Mr Andrew Bailey Reply Email To: myinf...@gmail.com with your "Full Names" for more info. Thanks for your understanding. Reply ASAP thank you. Melissa. -- Correo Corporativo Hospital Universitario del Valle E.S.E *** "Estamos re-dimensionandonos para crecer!" **
APPLY FOR YOUR URGENT LOAN AT 2%
* Do you need an urgent loan? We offer all kinds of loan * Very fast and urgent transfer to your bank account. * Payment begins (6) months after you get the money in your bank account * Low interest rates 2% * Payment of long-term (1-30 years) duration For more information and loan application form through the Contact now E-mail: thomascreditf...@gmail.com Thomas B. Dawson THOMAS CREDIT FIRM --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
I NEED YOUR URGENT HELP AND CORPERATION
Dear Friend, I am contacting you on a business deal of $9,500,000.00 Million United States Dollars, ready for transfer into your own personal account and if we make this claim, we will share it on the ratio of 50% / 50% basis, I would like to assure you that it be 100% risk free and it will be legally backed up with government approval. Once you are interested to transact this business with me, kindly give me your consent response immediately. Hoping to hear from you. My regards, Mr Ibrahim Kabore EMAIL,kabreibrahim...@gmail.com
(From: Mr. James Tan (Urgent & Confidential)
-- (From: Mr.James Tan (Urgent & Confidential) Good Day, Please Read. My name is Mr.James Tan , I am the Bill and Exchange manager here in Bank of Africa (BOA) Lome-Togo.West-Africa. I have a business proposal in the tune of $9.7m, (Nine Million Seven Hundred Thousand Dollars Only) after the successful transfer, we shall share in ratio of 40% for you and 60% for me. Should you be interested, please contact me through my private email (tanjames...@gmail.com) so we can commence all arrangements and i will give you more information on how we would handle this project. Please treat this business with utmost confidentiality and send me the Following: 1. Your Full Name: 2. Your Phone Number:.. 3. Your Age: 4. Your Sex:... 5. Your Occupations: 6. Your Country and City: Kind Regards, Mr.James Tan . Bill & Exchange manager (BOA) Bank of Africa. Lome-Togo. Email: tanjames...@gmail.com
Treat as urgent please.
-- Hello, Sorry to most have border you with this message, but i believe it will be of good benefit to you. Your name has just being mention by one of the hoodlum we caught last week trying to claimed the sum of {$2.20,000.00}. that belongs to one Mrs Veleries Nelton. Please confirm your Your name, address and phone number to us so that can verify your fund transfer and make further recommendation for the release of your long over due fund. Please we will like to hear from you as soon as you received this message. Mr. Gary Cantrell. For: Office of Criminal Investigations -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Very Urgent !
Date :: Saturday, May 28th, 2016. Greetings from BENIN REPUBLIC: Let me start by introduce myself; I am Mrs.Ruth Yoda, Bill and Exchange manager (Bank of Africa) Cotonou, Benin Republic. I write you this letter based on the latest development at our bank which i will like to bring to your personal edification, $12,250million transfer claims. This is a legitimate transaction and i agree to offer you 40% of this money as my foreign partner after confirmation of the fund in your bank account, if you are interested, please get back to me for more clarification. Yours faithful, Mrs.Ruth Yoda -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Very Urgent............
Greetings from gulf region Thanks for the e-mail. I am very interested on funding lucrative business partnership with you acting as the manager and sole controller of the investment while i remain a silent investor for a period of ten yrs , though I am only looking at investment opportunities within the range you specified for a start. You can reply me here (fmoris...@yahoo.com) Let me know your thought asap Regards Financial Consultant Mr.Fabian Morision -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Your Urgent Attention Please.
Your Urgent Attention Please. Dear. I got your contact through yahoo tourist search when I was searching for a foreign partner, although I don't now if you can keep this transaction personally secret till you get it into you bank account Well I have a deal worth 5.5m$ from the dormant account in the bank where I am working, However the fund belong to one Mr J. korovo he died years ago through aeroplane crash with his entire family, Please if you can keep this secret I will give you more details of this transaction, No risk involve, hence I work in the same bank, for the expenses will be in my side not you, till you confirm the fund in to you bank account, I will take care of expenses. Contact me for more details here is my private phone No +226 64424661, I will send you my ID. As soon as I hear from you with your full name, phone No, Receiver Country, Occupation, thanks for your understand please contact me base if you can control this fund once it transfer into your account before my family and I will arrive from Burkina to your country for the sharing 40% for you. 10% for the poorest, then rest is for me, This is my private Email Address (drrhamaadams...@voila.fr )get back to me so that I can check you mail and give you the details of this transaction, waiting to hear from you soon. From Dr Rhama. -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
URGENT LOAN OFFER!!
DO YOU NEED A LOAN IF YES,CONTACT US WITH:LOAN AMOUNT,LOAN DURATION,COUNTRY,PHONE,MOBILE NO:CONTACT US VIA EMAIL:(mr.johnsmithloanf...@gmail.com) -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re:Very Urgent!!!
Greetings from BURKINA FASO: Let me start by introduce myself,I am Mrs Doris Omar, BILL AND EXCHANGE MANAGER (Bank of Africa) Ouagadougou, Burkina Faso.I am writting you this letter based on the latest development at our bank which I will like to bring to your personal edification. $12,250million transfer claims. this is a legitimate transaction and I agreed to offer you 40% of this money as my foreign partner after confirmation of the fund in your bank account,If you are interested, please get back to me for more clarification. Yours faithful, Mrs Doris Omar. -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/PATCH 4/4] block: Add URGENT request notification support to CFQ scheduler
Hello Jeff Thank you for your comments. Please see inline. On 7/11/2013 9:41 PM, Jeff Moyer wrote: Tanya Brokhman tlin...@codeaurora.org writes: When the scheduler reports to the block layer that there is an urgent request pending, the device driver may decide to stop the transmission of the current request in order to handle the urgent one. This is done in order to reduce the latency of an urgent request. For example: long WRITE may be stopped to handle an urgent READ. In general, I don't like the approach taken. I would much rather see a low-level cancellation method, and layer your urgent request handling on top of that. That could actually be used by the aio subsystem as well (with a lot of work, of course). That aside, I've provided some comments below. We shared a support for the low-level cancellation method some time ago. Please look for a patch from Konstantin Dorfman from June 30 subjected: [RFC/PATCH v2] mmc: Add support to handle Urgent data transfer This patch set was released as a usage example for the mmc patch. They should go together actually in order to achieve the benefit described bellow. @@ -2111,12 +2114,13 @@ static void blk_account_io_done(struct request *req) cpu = part_stat_lock(); part = req-part; - part_stat_inc(cpu, part, ios[rw]); - part_stat_add(cpu, part, ticks[rw], duration); - part_round_stats(cpu, part); - part_dec_in_flight(part, rw); - - hd_struct_put(part); + if (req-part != NULL) { + part_stat_inc(cpu, part, ios[rw]); + part_stat_add(cpu, part, ticks[rw], duration); + part_round_stats(cpu, part); + part_dec_in_flight(part, rw); + hd_struct_put(part); + } A comment about why we now expect req-part might be null would be nice. This is not related to my patch. Have no idea how it got in. I'll upload a new version soon. Sorry about that. @@ -2783,6 +2786,14 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq) (RQ_CFQG(rq))-dispatched++; elv_dispatch_sort(q, rq); + if (rq-cmd_flags REQ_URGENT) { + if (!cfqd-nr_urgent_pending) + WARN_ON(1); + else + cfqd-nr_urgent_pending--; + cfqd-nr_urgent_in_flight++; + } + This is a rather ugly construct, and gets repeated later. I'd be inclined to just BUG. will fix. +/* + * Called when a request (rq) is reinserted (to cfqq). Check if there's + * something we should do about it + */ +static void +cfq_rq_requeued(struct cfq_data *cfqd, struct cfq_queue *cfqq, + struct request *rq) +{ + struct cfq_io_cq *cic = RQ_CIC(rq); + + cfqd-rq_queued++; + if (rq-cmd_flags REQ_PRIO) + cfqq-prio_pending++; + + cfqq-dispatched--; + (RQ_CFQG(rq))-dispatched--; + + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]--; + + cfq_update_io_thinktime(cfqd, cfqq, cic); + cfq_update_io_seektime(cfqd, cfqq, rq); + cfq_update_idle_window(cfqd, cfqq, cic); + + cfqq-last_request_pos = blk_rq_pos(rq) + blk_rq_sectors(rq); + + if (cfqq == cfqd-active_queue) { + if (cfq_cfqq_wait_request(cfqq)) { + if (blk_rq_bytes(rq) PAGE_CACHE_SIZE || + cfqd-busy_queues 1) { + cfq_del_timer(cfqd, cfqq); + cfq_clear_cfqq_wait_request(cfqq); + } else { + cfqg_stats_update_idle_time(cfqq-cfqg); + cfq_mark_cfqq_must_dispatch(cfqq); + } + } + } else if (cfq_should_preempt(cfqd, cfqq, rq)) { + cfq_preempt_queue(cfqd, cfqq); + } +} Huge cut-n-paste of cfq_rq_enqueued. Please factor the code out. ok. + static void cfq_insert_request(struct request_queue *q, struct request *rq) { struct cfq_data *cfqd = q-elevator-elevator_data; @@ -3923,6 +3996,43 @@ static void cfq_insert_request(struct request_queue *q, struct request *rq) cfqg_stats_update_io_add(RQ_CFQG(rq), cfqd-serving_group, rq-cmd_flags); cfq_rq_enqueued(cfqd, cfqq, rq); + + if (rq-cmd_flags REQ_URGENT) { + WARN_ON(1); + blk_dump_rq_flags(rq, ); + rq-cmd_flags = ~REQ_URGENT; + } + + /* +* Request is considered URGENT if: +* 1. The queue being served is of a lower IO priority then the new +*request +* OR: +* 2. The workload being performed is ASYNC +* Only READ requests may be considered as URGENT +*/ + if ((cfqd-active_queue +cfqq-ioprio_class cfqd
[RFC/PATCH 4/4] block: Add URGENT request notification support to CFQ scheduler
When the scheduler reports to the block layer that there is an urgent request pending, the device driver may decide to stop the transmission of the current request in order to handle the urgent one. This is done in order to reduce the latency of an urgent request. For example: long WRITE may be stopped to handle an urgent READ. Signed-off-by: Tatyana Brokhman tlin...@codeaurora.org diff --git a/block/blk-core.c b/block/blk-core.c index 3ab3a62..705f4f9 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2090,7 +2090,10 @@ static void blk_account_io_completion(struct request *req, unsigned int bytes) cpu = part_stat_lock(); part = req-part; - part_stat_add(cpu, part, sectors[rw], bytes 9); + if (part == NULL) + pr_err(%s: YANIV - BUG START, __func__); + else + part_stat_add(cpu, part, sectors[rw], bytes 9); part_stat_unlock(); } } @@ -2111,12 +2114,13 @@ static void blk_account_io_done(struct request *req) cpu = part_stat_lock(); part = req-part; - part_stat_inc(cpu, part, ios[rw]); - part_stat_add(cpu, part, ticks[rw], duration); - part_round_stats(cpu, part); - part_dec_in_flight(part, rw); - - hd_struct_put(part); + if (req-part != NULL) { + part_stat_inc(cpu, part, ios[rw]); + part_stat_add(cpu, part, ticks[rw], duration); + part_round_stats(cpu, part); + part_dec_in_flight(part, rw); + hd_struct_put(part); + } part_stat_unlock(); } } diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index d5bbdcf..f936cb9 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -320,6 +320,9 @@ struct cfq_data { unsigned long workload_expires; struct cfq_group *serving_group; + unsigned int nr_urgent_pending; + unsigned int nr_urgent_in_flight; + /* * Each priority tree is sorted by next_request position. These * trees are used when determining if two or more queues are @@ -2783,6 +2786,14 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq) (RQ_CFQG(rq))-dispatched++; elv_dispatch_sort(q, rq); + if (rq-cmd_flags REQ_URGENT) { + if (!cfqd-nr_urgent_pending) + WARN_ON(1); + else + cfqd-nr_urgent_pending--; + cfqd-nr_urgent_in_flight++; + } + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]++; cfqq-nr_sectors += blk_rq_sectors(rq); cfqg_stats_update_dispatch(cfqq-cfqg, blk_rq_bytes(rq), rq-cmd_flags); @@ -3909,6 +3920,68 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, } } +/* + * Called when a request (rq) is reinserted (to cfqq). Check if there's + * something we should do about it + */ +static void +cfq_rq_requeued(struct cfq_data *cfqd, struct cfq_queue *cfqq, + struct request *rq) +{ + struct cfq_io_cq *cic = RQ_CIC(rq); + + cfqd-rq_queued++; + if (rq-cmd_flags REQ_PRIO) + cfqq-prio_pending++; + + cfqq-dispatched--; + (RQ_CFQG(rq))-dispatched--; + + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]--; + + cfq_update_io_thinktime(cfqd, cfqq, cic); + cfq_update_io_seektime(cfqd, cfqq, rq); + cfq_update_idle_window(cfqd, cfqq, cic); + + cfqq-last_request_pos = blk_rq_pos(rq) + blk_rq_sectors(rq); + + if (cfqq == cfqd-active_queue) { + if (cfq_cfqq_wait_request(cfqq)) { + if (blk_rq_bytes(rq) PAGE_CACHE_SIZE || + cfqd-busy_queues 1) { + cfq_del_timer(cfqd, cfqq); + cfq_clear_cfqq_wait_request(cfqq); + } else { + cfqg_stats_update_idle_time(cfqq-cfqg); + cfq_mark_cfqq_must_dispatch(cfqq); + } + } + } else if (cfq_should_preempt(cfqd, cfqq, rq)) { + cfq_preempt_queue(cfqd, cfqq); + } +} + +static int cfq_reinsert_request(struct request_queue *q, struct request *rq) +{ + struct cfq_data *cfqd = q-elevator-elevator_data; + struct cfq_queue *cfqq = RQ_CFQQ(rq); + + if (!cfqq || cfqq-cfqd != cfqd) + return -EIO; + + cfq_log_cfqq(cfqd, cfqq, re-insert_request); + list_add(rq-queuelist, cfqq-fifo); + cfq_add_rq_rb(rq); + + cfq_rq_requeued(cfqd, cfqq, rq); + if (rq-cmd_flags REQ_URGENT) { + if (cfqd-nr_urgent_in_flight) + cfqd-nr_urgent_in_flight--; + cfqd-nr_urgent_pending
Re: [RFC/PATCH 4/4] block: Add URGENT request notification support to CFQ scheduler
On Thu, Jul 11, 2013 at 6:31 PM, Tanya Brokhman tlin...@codeaurora.org wrote: When the scheduler reports to the block layer that there is an urgent request pending, the device driver may decide to stop the transmission of the current request in order to handle the urgent one. This is done in order to reduce the latency of an urgent request. For example: long WRITE may be stopped to handle an urgent READ. Signed-off-by: Tatyana Brokhman tlin...@codeaurora.org diff --git a/block/blk-core.c b/block/blk-core.c index 3ab3a62..705f4f9 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2090,7 +2090,10 @@ static void blk_account_io_completion(struct request *req, unsigned int bytes) cpu = part_stat_lock(); part = req-part; - part_stat_add(cpu, part, sectors[rw], bytes 9); + if (part == NULL) + pr_err(%s: YANIV - BUG START, __func__); + else + part_stat_add(cpu, part, sectors[rw], bytes 9); part_stat_unlock(); } } @@ -2111,12 +2114,13 @@ static void blk_account_io_done(struct request *req) cpu = part_stat_lock(); part = req-part; - part_stat_inc(cpu, part, ios[rw]); - part_stat_add(cpu, part, ticks[rw], duration); - part_round_stats(cpu, part); - part_dec_in_flight(part, rw); - - hd_struct_put(part); + if (req-part != NULL) { + part_stat_inc(cpu, part, ios[rw]); + part_stat_add(cpu, part, ticks[rw], duration); + part_round_stats(cpu, part); + part_dec_in_flight(part, rw); + hd_struct_put(part); + } part_stat_unlock(); } } diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index d5bbdcf..f936cb9 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -320,6 +320,9 @@ struct cfq_data { unsigned long workload_expires; struct cfq_group *serving_group; + unsigned int nr_urgent_pending; + unsigned int nr_urgent_in_flight; + /* * Each priority tree is sorted by next_request position. These * trees are used when determining if two or more queues are @@ -2783,6 +2786,14 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq) (RQ_CFQG(rq))-dispatched++; elv_dispatch_sort(q, rq); + if (rq-cmd_flags REQ_URGENT) { + if (!cfqd-nr_urgent_pending) + WARN_ON(1); + else + cfqd-nr_urgent_pending--; + cfqd-nr_urgent_in_flight++; + } + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]++; cfqq-nr_sectors += blk_rq_sectors(rq); cfqg_stats_update_dispatch(cfqq-cfqg, blk_rq_bytes(rq), rq-cmd_flags); @@ -3909,6 +3920,68 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, } } +/* + * Called when a request (rq) is reinserted (to cfqq). Check if there's + * something we should do about it + */ +static void +cfq_rq_requeued(struct cfq_data *cfqd, struct cfq_queue *cfqq, + struct request *rq) +{ + struct cfq_io_cq *cic = RQ_CIC(rq); + + cfqd-rq_queued++; + if (rq-cmd_flags REQ_PRIO) + cfqq-prio_pending++; + + cfqq-dispatched--; + (RQ_CFQG(rq))-dispatched--; + + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]--; + + cfq_update_io_thinktime(cfqd, cfqq, cic); + cfq_update_io_seektime(cfqd, cfqq, rq); + cfq_update_idle_window(cfqd, cfqq, cic); + + cfqq-last_request_pos = blk_rq_pos(rq) + blk_rq_sectors(rq); + + if (cfqq == cfqd-active_queue) { + if (cfq_cfqq_wait_request(cfqq)) { + if (blk_rq_bytes(rq) PAGE_CACHE_SIZE || + cfqd-busy_queues 1) { + cfq_del_timer(cfqd, cfqq); + cfq_clear_cfqq_wait_request(cfqq); + } else { + cfqg_stats_update_idle_time(cfqq-cfqg); + cfq_mark_cfqq_must_dispatch(cfqq); + } + } + } else if (cfq_should_preempt(cfqd, cfqq, rq)) { + cfq_preempt_queue(cfqd, cfqq); + } +} + +static int cfq_reinsert_request(struct request_queue *q, struct request *rq) +{ + struct cfq_data *cfqd = q-elevator-elevator_data; + struct cfq_queue *cfqq = RQ_CFQQ(rq); + + if (!cfqq || cfqq-cfqd != cfqd) + return -EIO; + + cfq_log_cfqq(cfqd, cfqq, re-insert_request); + list_add(rq-queuelist, cfqq-fifo); + cfq_add_rq_rb(rq); + + cfq_rq_requeued(cfqd, cfqq, rq
Re: [RFC/PATCH 4/4] block: Add URGENT request notification support to CFQ scheduler
Tanya Brokhman tlin...@codeaurora.org writes: When the scheduler reports to the block layer that there is an urgent request pending, the device driver may decide to stop the transmission of the current request in order to handle the urgent one. This is done in order to reduce the latency of an urgent request. For example: long WRITE may be stopped to handle an urgent READ. In general, I don't like the approach taken. I would much rather see a low-level cancellation method, and layer your urgent request handling on top of that. That could actually be used by the aio subsystem as well (with a lot of work, of course). That aside, I've provided some comments below. Signed-off-by: Tatyana Brokhman tlin...@codeaurora.org diff --git a/block/blk-core.c b/block/blk-core.c index 3ab3a62..705f4f9 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2090,7 +2090,10 @@ static void blk_account_io_completion(struct request *req, unsigned int bytes) cpu = part_stat_lock(); part = req-part; - part_stat_add(cpu, part, sectors[rw], bytes 9); + if (part == NULL) + pr_err(%s: YANIV - BUG START, __func__); + else + part_stat_add(cpu, part, sectors[rw], bytes 9); This looks like leftover debugging. part_stat_unlock(); } } @@ -2111,12 +2114,13 @@ static void blk_account_io_done(struct request *req) cpu = part_stat_lock(); part = req-part; - part_stat_inc(cpu, part, ios[rw]); - part_stat_add(cpu, part, ticks[rw], duration); - part_round_stats(cpu, part); - part_dec_in_flight(part, rw); - - hd_struct_put(part); + if (req-part != NULL) { + part_stat_inc(cpu, part, ios[rw]); + part_stat_add(cpu, part, ticks[rw], duration); + part_round_stats(cpu, part); + part_dec_in_flight(part, rw); + hd_struct_put(part); + } A comment about why we now expect req-part might be null would be nice. part_stat_unlock(); } } diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index d5bbdcf..f936cb9 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -320,6 +320,9 @@ struct cfq_data { unsigned long workload_expires; struct cfq_group *serving_group; + unsigned int nr_urgent_pending; + unsigned int nr_urgent_in_flight; + /* * Each priority tree is sorted by next_request position. These * trees are used when determining if two or more queues are @@ -2783,6 +2786,14 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq) (RQ_CFQG(rq))-dispatched++; elv_dispatch_sort(q, rq); + if (rq-cmd_flags REQ_URGENT) { + if (!cfqd-nr_urgent_pending) + WARN_ON(1); + else + cfqd-nr_urgent_pending--; + cfqd-nr_urgent_in_flight++; + } + This is a rather ugly construct, and gets repeated later. I'd be inclined to just BUG. cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]++; cfqq-nr_sectors += blk_rq_sectors(rq); cfqg_stats_update_dispatch(cfqq-cfqg, blk_rq_bytes(rq), rq-cmd_flags); @@ -3909,6 +3920,68 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, } } +/* + * Called when a request (rq) is reinserted (to cfqq). Check if there's + * something we should do about it + */ +static void +cfq_rq_requeued(struct cfq_data *cfqd, struct cfq_queue *cfqq, + struct request *rq) +{ + struct cfq_io_cq *cic = RQ_CIC(rq); + + cfqd-rq_queued++; + if (rq-cmd_flags REQ_PRIO) + cfqq-prio_pending++; + + cfqq-dispatched--; + (RQ_CFQG(rq))-dispatched--; + + cfqd-rq_in_flight[cfq_cfqq_sync(cfqq)]--; + + cfq_update_io_thinktime(cfqd, cfqq, cic); + cfq_update_io_seektime(cfqd, cfqq, rq); + cfq_update_idle_window(cfqd, cfqq, cic); + + cfqq-last_request_pos = blk_rq_pos(rq) + blk_rq_sectors(rq); + + if (cfqq == cfqd-active_queue) { + if (cfq_cfqq_wait_request(cfqq)) { + if (blk_rq_bytes(rq) PAGE_CACHE_SIZE || + cfqd-busy_queues 1) { + cfq_del_timer(cfqd, cfqq); + cfq_clear_cfqq_wait_request(cfqq); + } else { + cfqg_stats_update_idle_time(cfqq-cfqg); + cfq_mark_cfqq_must_dispatch(cfqq); + } + } + } else if (cfq_should_preempt(cfqd, cfqq, rq)) { + cfq_preempt_queue(cfqd, cfqq); + } +} Huge cut-n-paste of cfq_rq_enqueued. Please factor the code out. +static int cfq_reinsert_request(struct
[PATCH for 3.6 0/3] urgent virtio-scsi fixes
James, here are three important bugfixes for virtio-scsi. All three have been on the list for a while, I'm grouping them in this post to ease your processing. Two of them are also marked for stable branches. Paolo Paolo Bonzini (1): virtio-scsi: fix LUNs greater than 255 Richard W.M. Jones (1): virtio-scsi: initialize scatterlist structure for events Wang Sen (1): virtio-scsi: fix copying of sg_list in the presence of of HighMem pages drivers/scsi/virtio_scsi.c | 10 +++--- 1 files changed, 7 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html